/****************************************************************************
 * include/nuttx/input/x11_keysymdef.h
 *
 *   Copyright 1987, 1994, 1998  The Open Group
 *
 * Permission to use, copy, modify, distribute, and sell this software and
 * its documentation for any purpose is hereby granted without fee, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation.
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 * Except as contained in this notice, the name of The Open Group shall
 * not be used in advertising or otherwise to promote the sale, use or
 * other dealings in this Software without prior written authorization
 * from The Open Group.
 *
 * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
 *
 *                         All Rights Reserved
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee is hereby granted,
 * provided that the above copyright notice appear in all copies and that
 * both that copyright notice and this permission notice appear in
 * supporting documentation, and that the name of Digital not be
 * used in advertising or publicity pertaining to distribution of the
 * software without specific, written prior permission.
 *
 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 *
 ****************************************************************************/

#ifndef __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H
#define __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H

/* The "X11 Window System Protocol" standard defines in Appendix A the
 * keysym codes. These 29-bit integer values identify characters or
 * functions associated with each key (e.g., via the visible
 * engraving) of a keyboard layout. This file assigns mnemonic macro
 * names for these keysyms.
 *
 * This file is also compiled (by xc/lib/X11/util/makekeys.c) into
 * hash tables that can be accessed with X11 library functions such as
 * XStringToKeysym() and XKeysymToString().
 *
 * Where a keysym corresponds one-to-one to an ISO 10646 / Unicode
 * character, this is noted in a comment that provides both the U+xxxx
 * Unicode position, as well as the official Unicode name of the
 * character.
 *
 * Where the correspondence is either not one-to-one or semantically
 * unclear, the Unicode position and name are enclosed in
 * parentheses. Such legacy keysyms should be considered deprecated
 * and are not recommended for use in future keyboard mappings.
 *
 * For any future extension of the keysyms with characters already
 * found in ISO 10646 / Unicode, the following algorithm shall be
 * used. The new keysym code position will simply be the character's
 * Unicode number plus 0x01000000. The keysym values in the range
 * 0x01000100 to 0x0110ffff are reserved to represent Unicode
 * characters in the range U+0100 to U+10FFFF.
 *
 * While most newer Unicode-based X11 clients do already accept
 * Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it
 * will remain necessary for clients -- in the interest of
 * compatibility with existing servers -- to also understand the
 * existing legacy keysym values in the range 0x0100 to 0x20ff.
 *
 * Where several mnemonic names are defined for the same keysym in this
 * file, all but the first one listed should be considered deprecated.
 *
 * Mnemonic names for keysyms are defined in this file with lines
 * that match one of these Perl regular expressions:
 *
 * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*
 *                              U+([0-9A-F]{4,6}) (.*) \*\/\s*$/
 * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\
 *                             (U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
 * /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\
 *                             s*\*\/)?\s*$/
 *
 * When adding new keysyms to this file, do not forget to also update the
 * mappings in xc/lib/X11/KeyBind.c and the protocol specification in
 * xc/doc/specs/XProtocol/X11.keysyms.
 */

/****************************************************************************
 * Pre-processor Definitions
 ****************************************************************************/

#define XK_VoidSymbol                  0xffffff  /* Void symbol */

#ifdef XK_MISCELLANY

/* TTY function keys, cleverly chosen to map to ASCII, for convenience of
 * programming, but could have been arbitrary (at the cost of lookup
 * tables in client code).
 */

#define XK_BackSpace                   0xff08  /* Back space, back char */
#define XK_Tab                         0xff09
#define XK_Linefeed                    0xff0a  /* Linefeed, LF */
#define XK_Clear                       0xff0b
#define XK_Return                      0xff0d  /* Return, enter */
#define XK_Pause                       0xff13  /* Pause, hold */
#define XK_Scroll_Lock                 0xff14
#define XK_Sys_Req                     0xff15
#define XK_Escape                      0xff1b
#define XK_Delete                      0xffff  /* Delete, rubout */

/* International & multi-key character composition */

#define XK_Multi_key                   0xff20  /* Multi-key character compose */
#define XK_Codeinput                   0xff37
#define XK_SingleCandidate             0xff3c
#define XK_MultipleCandidate           0xff3d
#define XK_PreviousCandidate           0xff3e

/* Japanese keyboard support */

#define XK_Kanji                       0xff21  /* Kanji, Kanji convert */
#define XK_Muhenkan                    0xff22  /* Cancel Conversion */
#define XK_Henkan_Mode                 0xff23  /* Start/Stop Conversion */
#define XK_Henkan                      0xff23  /* Alias for Henkan_Mode */
#define XK_Romaji                      0xff24  /* to Romaji */
#define XK_Hiragana                    0xff25  /* to Hiragana */
#define XK_Katakana                    0xff26  /* to Katakana */
#define XK_Hiragana_Katakana           0xff27  /* Hiragana/Katakana toggle */
#define XK_Zenkaku                     0xff28  /* to Zenkaku */
#define XK_Hankaku                     0xff29  /* to Hankaku */
#define XK_Zenkaku_Hankaku             0xff2a  /* Zenkaku/Hankaku toggle */
#define XK_Touroku                     0xff2b  /* Add to Dictionary */
#define XK_Massyo                      0xff2c  /* Delete from Dictionary */
#define XK_Kana_Lock                   0xff2d  /* Kana Lock */
#define XK_Kana_Shift                  0xff2e  /* Kana Shift */
#define XK_Eisu_Shift                  0xff2f  /* Alphanumeric Shift */
#define XK_Eisu_toggle                 0xff30  /* Alphanumeric toggle */
#define XK_Kanji_Bangou                0xff37  /* Codeinput */
#define XK_Zen_Koho                    0xff3d  /* Multiple/All Candidate(s) */
#define XK_Mae_Koho                    0xff3e  /* Previous Candidate */

/* 0xff31 through 0xff3f are under XK_KOREAN */

/* Cursor control & motion */

#define XK_Home                        0xff50
#define XK_Left                        0xff51  /* Move left, left arrow */
#define XK_Up                          0xff52  /* Move up, up arrow */
#define XK_Right                       0xff53  /* Move right, right arrow */
#define XK_Down                        0xff54  /* Move down, down arrow */
#define XK_Prior                       0xff55  /* Prior, previous */
#define XK_Page_Up                     0xff55
#define XK_Next                        0xff56  /* Next */
#define XK_Page_Down                   0xff56
#define XK_End                         0xff57  /* EOL */
#define XK_Begin                       0xff58  /* BOL */

/* Misc functions */

#define XK_Select                      0xff60  /* Select, mark */
#define XK_Print                       0xff61
#define XK_Execute                     0xff62  /* Execute, run, do */
#define XK_Insert                      0xff63  /* Insert, insert here */
#define XK_Undo                        0xff65
#define XK_Redo                        0xff66  /* Redo, again */
#define XK_Menu                        0xff67
#define XK_Find                        0xff68  /* Find, search */
#define XK_Cancel                      0xff69  /* Cancel, stop, abort, exit */
#define XK_Help                        0xff6a  /* Help */
#define XK_Break                       0xff6b
#define XK_Mode_switch                 0xff7e  /* Character set switch */
#define XK_script_switch               0xff7e  /* Alias for mode_switch */
#define XK_Num_Lock                    0xff7f

/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */

#define XK_KP_Space                    0xff80  /* Space */
#define XK_KP_Tab                      0xff89
#define XK_KP_Enter                    0xff8d  /* Enter */
#define XK_KP_F1                       0xff91  /* PF1, KP_A, ... */
#define XK_KP_F2                       0xff92
#define XK_KP_F3                       0xff93
#define XK_KP_F4                       0xff94
#define XK_KP_Home                     0xff95
#define XK_KP_Left                     0xff96
#define XK_KP_Up                       0xff97
#define XK_KP_Right                    0xff98
#define XK_KP_Down                     0xff99
#define XK_KP_Prior                    0xff9a
#define XK_KP_Page_Up                  0xff9a
#define XK_KP_Next                     0xff9b
#define XK_KP_Page_Down                0xff9b
#define XK_KP_End                      0xff9c
#define XK_KP_Begin                    0xff9d
#define XK_KP_Insert                   0xff9e
#define XK_KP_Delete                   0xff9f
#define XK_KP_Equal                    0xffbd  /* Equals */
#define XK_KP_Multiply                 0xffaa
#define XK_KP_Add                      0xffab
#define XK_KP_Separator                0xffac  /* Separator, often comma */
#define XK_KP_Subtract                 0xffad
#define XK_KP_Decimal                  0xffae
#define XK_KP_Divide                   0xffaf

#define XK_KP_0                        0xffb0
#define XK_KP_1                        0xffb1
#define XK_KP_2                        0xffb2
#define XK_KP_3                        0xffb3
#define XK_KP_4                        0xffb4
#define XK_KP_5                        0xffb5
#define XK_KP_6                        0xffb6
#define XK_KP_7                        0xffb7
#define XK_KP_8                        0xffb8
#define XK_KP_9                        0xffb9

/* Auxiliary functions; note the duplicate definitions for left and right
 * function keys;  Sun keyboards and a few other manufactures have such
 * function key groups on the left and/or right sides of the keyboard.
 * We've not found a keyboard with more than 35 function keys total.
 */

#define XK_F1                          0xffbe
#define XK_F2                          0xffbf
#define XK_F3                          0xffc0
#define XK_F4                          0xffc1
#define XK_F5                          0xffc2
#define XK_F6                          0xffc3
#define XK_F7                          0xffc4
#define XK_F8                          0xffc5
#define XK_F9                          0xffc6
#define XK_F10                         0xffc7
#define XK_F11                         0xffc8
#define XK_L1                          0xffc8
#define XK_F12                         0xffc9
#define XK_L2                          0xffc9
#define XK_F13                         0xffca
#define XK_L3                          0xffca
#define XK_F14                         0xffcb
#define XK_L4                          0xffcb
#define XK_F15                         0xffcc
#define XK_L5                          0xffcc
#define XK_F16                         0xffcd
#define XK_L6                          0xffcd
#define XK_F17                         0xffce
#define XK_L7                          0xffce
#define XK_F18                         0xffcf
#define XK_L8                          0xffcf
#define XK_F19                         0xffd0
#define XK_L9                          0xffd0
#define XK_F20                         0xffd1
#define XK_L10                         0xffd1
#define XK_F21                         0xffd2
#define XK_R1                          0xffd2
#define XK_F22                         0xffd3
#define XK_R2                          0xffd3
#define XK_F23                         0xffd4
#define XK_R3                          0xffd4
#define XK_F24                         0xffd5
#define XK_R4                          0xffd5
#define XK_F25                         0xffd6
#define XK_R5                          0xffd6
#define XK_F26                         0xffd7
#define XK_R6                          0xffd7
#define XK_F27                         0xffd8
#define XK_R7                          0xffd8
#define XK_F28                         0xffd9
#define XK_R8                          0xffd9
#define XK_F29                         0xffda
#define XK_R9                          0xffda
#define XK_F30                         0xffdb
#define XK_R10                         0xffdb
#define XK_F31                         0xffdc
#define XK_R11                         0xffdc
#define XK_F32                         0xffdd
#define XK_R12                         0xffdd
#define XK_F33                         0xffde
#define XK_R13                         0xffde
#define XK_F34                         0xffdf
#define XK_R14                         0xffdf
#define XK_F35                         0xffe0
#define XK_R15                         0xffe0

/* Modifiers */

#define XK_Shift_L                     0xffe1  /* Left shift */
#define XK_Shift_R                     0xffe2  /* Right shift */
#define XK_Control_L                   0xffe3  /* Left control */
#define XK_Control_R                   0xffe4  /* Right control */
#define XK_Caps_Lock                   0xffe5  /* Caps lock */
#define XK_Shift_Lock                  0xffe6  /* Shift lock */

#define XK_Meta_L                      0xffe7  /* Left meta */
#define XK_Meta_R                      0xffe8  /* Right meta */
#define XK_Alt_L                       0xffe9  /* Left alt */
#define XK_Alt_R                       0xffea  /* Right alt */
#define XK_Super_L                     0xffeb  /* Left super */
#define XK_Super_R                     0xffec  /* Right super */
#define XK_Hyper_L                     0xffed  /* Left hyper */
#define XK_Hyper_R                     0xffee  /* Right hyper */
#endif /* XK_MISCELLANY */

/* Keyboard (XKB) Extension function and modifier keys
 * (from Appendix C of "The X Keyboard Extension: Protocol Specification")
 * Byte 3 = 0xfe
 */

#ifdef XK_XKB_KEYS
#define XK_ISO_Lock                    0xfe01
#define XK_ISO_Level2_Latch            0xfe02
#define XK_ISO_Level3_Shift            0xfe03
#define XK_ISO_Level3_Latch            0xfe04
#define XK_ISO_Level3_Lock             0xfe05
#define XK_ISO_Group_Shift             0xff7e  /* Alias for mode_switch */
#define XK_ISO_Group_Latch             0xfe06
#define XK_ISO_Group_Lock              0xfe07
#define XK_ISO_Next_Group              0xfe08
#define XK_ISO_Next_Group_Lock         0xfe09
#define XK_ISO_Prev_Group              0xfe0a
#define XK_ISO_Prev_Group_Lock         0xfe0b
#define XK_ISO_First_Group             0xfe0c
#define XK_ISO_First_Group_Lock        0xfe0d
#define XK_ISO_Last_Group              0xfe0e
#define XK_ISO_Last_Group_Lock         0xfe0f

#define XK_ISO_Left_Tab                0xfe20
#define XK_ISO_Move_Line_Up            0xfe21
#define XK_ISO_Move_Line_Down          0xfe22
#define XK_ISO_Partial_Line_Up         0xfe23
#define XK_ISO_Partial_Line_Down       0xfe24
#define XK_ISO_Partial_Space_Left      0xfe25
#define XK_ISO_Partial_Space_Right     0xfe26
#define XK_ISO_Set_Margin_Left         0xfe27
#define XK_ISO_Set_Margin_Right        0xfe28
#define XK_ISO_Release_Margin_Left     0xfe29
#define XK_ISO_Release_Margin_Right    0xfe2a
#define XK_ISO_Release_Both_Margins    0xfe2b
#define XK_ISO_Fast_Cursor_Left        0xfe2c
#define XK_ISO_Fast_Cursor_Right       0xfe2d
#define XK_ISO_Fast_Cursor_Up          0xfe2e
#define XK_ISO_Fast_Cursor_Down        0xfe2f
#define XK_ISO_Continuous_Underline    0xfe30
#define XK_ISO_Discontinuous_Underline 0xfe31
#define XK_ISO_Emphasize               0xfe32
#define XK_ISO_Center_Object           0xfe33
#define XK_ISO_Enter                   0xfe34

#define XK_dead_grave                  0xfe50
#define XK_dead_acute                  0xfe51
#define XK_dead_circumflex             0xfe52
#define XK_dead_tilde                  0xfe53
#define XK_dead_macron                 0xfe54
#define XK_dead_breve                  0xfe55
#define XK_dead_abovedot               0xfe56
#define XK_dead_diaeresis              0xfe57
#define XK_dead_abovering              0xfe58
#define XK_dead_doubleacute            0xfe59
#define XK_dead_caron                  0xfe5a
#define XK_dead_cedilla                0xfe5b
#define XK_dead_ogonek                 0xfe5c
#define XK_dead_iota                   0xfe5d
#define XK_dead_voiced_sound           0xfe5e
#define XK_dead_semivoiced_sound       0xfe5f
#define XK_dead_belowdot               0xfe60
#define XK_dead_hook                   0xfe61
#define XK_dead_horn                   0xfe62

#define XK_First_Virtual_Screen        0xfed0
#define XK_Prev_Virtual_Screen         0xfed1
#define XK_Next_Virtual_Screen         0xfed2
#define XK_Last_Virtual_Screen         0xfed4
#define XK_Terminate_Server            0xfed5

#define XK_AccessX_Enable              0xfe70
#define XK_AccessX_Feedback_Enable     0xfe71
#define XK_RepeatKeys_Enable           0xfe72
#define XK_SlowKeys_Enable             0xfe73
#define XK_BounceKeys_Enable           0xfe74
#define XK_StickyKeys_Enable           0xfe75
#define XK_MouseKeys_Enable            0xfe76
#define XK_MouseKeys_Accel_Enable      0xfe77
#define XK_Overlay1_Enable             0xfe78
#define XK_Overlay2_Enable             0xfe79
#define XK_AudibleBell_Enable          0xfe7a

#define XK_Pointer_Left                0xfee0
#define XK_Pointer_Right               0xfee1
#define XK_Pointer_Up                  0xfee2
#define XK_Pointer_Down                0xfee3
#define XK_Pointer_UpLeft              0xfee4
#define XK_Pointer_UpRight             0xfee5
#define XK_Pointer_DownLeft            0xfee6
#define XK_Pointer_DownRight           0xfee7
#define XK_Pointer_Button_Dflt         0xfee8
#define XK_Pointer_Button1             0xfee9
#define XK_Pointer_Button2             0xfeea
#define XK_Pointer_Button3             0xfeeb
#define XK_Pointer_Button4             0xfeec
#define XK_Pointer_Button5             0xfeed
#define XK_Pointer_DblClick_Dflt       0xfeee
#define XK_Pointer_DblClick1           0xfeef
#define XK_Pointer_DblClick2           0xfef0
#define XK_Pointer_DblClick3           0xfef1
#define XK_Pointer_DblClick4           0xfef2
#define XK_Pointer_DblClick5           0xfef3
#define XK_Pointer_Drag_Dflt           0xfef4
#define XK_Pointer_Drag1               0xfef5
#define XK_Pointer_Drag2               0xfef6
#define XK_Pointer_Drag3               0xfef7
#define XK_Pointer_Drag4               0xfef8
#define XK_Pointer_Drag5               0xfefd

#define XK_Pointer_EnableKeys          0xfef9
#define XK_Pointer_Accelerate          0xfefa
#define XK_Pointer_DfltBtnNext         0xfefb
#define XK_Pointer_DfltBtnPrev         0xfefc
#endif /* XK_XKB_KEYS */

/* 3270 Terminal Keys
 * Byte 3 = 0xfd
 */

#ifdef XK_3270
#define XK_3270_Duplicate              0xfd01
#define XK_3270_FieldMark              0xfd02
#define XK_3270_Right2                 0xfd03
#define XK_3270_Left2                  0xfd04
#define XK_3270_BackTab                0xfd05
#define XK_3270_EraseEOF               0xfd06
#define XK_3270_EraseInput             0xfd07
#define XK_3270_Reset                  0xfd08
#define XK_3270_Quit                   0xfd09
#define XK_3270_PA1                    0xfd0a
#define XK_3270_PA2                    0xfd0b
#define XK_3270_PA3                    0xfd0c
#define XK_3270_Test                   0xfd0d
#define XK_3270_Attn                   0xfd0e
#define XK_3270_CursorBlink            0xfd0f
#define XK_3270_AltCursor              0xfd10
#define XK_3270_KeyClick               0xfd11
#define XK_3270_Jump                   0xfd12
#define XK_3270_Ident                  0xfd13
#define XK_3270_Rule                   0xfd14
#define XK_3270_Copy                   0xfd15
#define XK_3270_Play                   0xfd16
#define XK_3270_Setup                  0xfd17
#define XK_3270_Record                 0xfd18
#define XK_3270_ChangeScreen           0xfd19
#define XK_3270_DeleteWord             0xfd1a
#define XK_3270_ExSelect               0xfd1b
#define XK_3270_CursorSelect           0xfd1c
#define XK_3270_PrintScreen            0xfd1d
#define XK_3270_Enter                  0xfd1e
#endif /* XK_3270 */

/* Latin 1
 * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
 * Byte 3 = 0
 */

#ifdef XK_LATIN1
#define XK_space                       0x0020  /* U+0020 SPACE */
#define XK_exclam                      0x0021  /* U+0021 EXCLAMATION MARK */
#define XK_quotedbl                    0x0022  /* U+0022 QUOTATION MARK */
#define XK_numbersign                  0x0023  /* U+0023 NUMBER SIGN */
#define XK_dollar                      0x0024  /* U+0024 DOLLAR SIGN */
#define XK_percent                     0x0025  /* U+0025 PERCENT SIGN */
#define XK_ampersand                   0x0026  /* U+0026 AMPERSAND */
#define XK_apostrophe                  0x0027  /* U+0027 APOSTROPHE */
#define XK_quoteright                  0x0027  /* deprecated */
#define XK_parenleft                   0x0028  /* U+0028 LEFT PARENTHESIS */
#define XK_parenright                  0x0029  /* U+0029 RIGHT PARENTHESIS */
#define XK_asterisk                    0x002a  /* U+002A ASTERISK */
#define XK_plus                        0x002b  /* U+002B PLUS SIGN */
#define XK_comma                       0x002c  /* U+002C COMMA */
#define XK_minus                       0x002d  /* U+002D HYPHEN-MINUS */
#define XK_period                      0x002e  /* U+002E FULL STOP */
#define XK_slash                       0x002f  /* U+002F SOLIDUS */
#define XK_0                           0x0030  /* U+0030 DIGIT ZERO */
#define XK_1                           0x0031  /* U+0031 DIGIT ONE */
#define XK_2                           0x0032  /* U+0032 DIGIT TWO */
#define XK_3                           0x0033  /* U+0033 DIGIT THREE */
#define XK_4                           0x0034  /* U+0034 DIGIT FOUR */
#define XK_5                           0x0035  /* U+0035 DIGIT FIVE */
#define XK_6                           0x0036  /* U+0036 DIGIT SIX */
#define XK_7                           0x0037  /* U+0037 DIGIT SEVEN */
#define XK_8                           0x0038  /* U+0038 DIGIT EIGHT */
#define XK_9                           0x0039  /* U+0039 DIGIT NINE */
#define XK_colon                       0x003a  /* U+003A COLON */
#define XK_semicolon                   0x003b  /* U+003B SEMICOLON */
#define XK_less                        0x003c  /* U+003C LESS-THAN SIGN */
#define XK_equal                       0x003d  /* U+003D EQUALS SIGN */
#define XK_greater                     0x003e  /* U+003E GREATER-THAN SIGN */
#define XK_question                    0x003f  /* U+003F QUESTION MARK */
#define XK_at                          0x0040  /* U+0040 COMMERCIAL AT */
#define XK_A                           0x0041  /* U+0041 LATIN CAPITAL LETTER A */
#define XK_B                           0x0042  /* U+0042 LATIN CAPITAL LETTER B */
#define XK_C                           0x0043  /* U+0043 LATIN CAPITAL LETTER C */
#define XK_D                           0x0044  /* U+0044 LATIN CAPITAL LETTER D */
#define XK_E                           0x0045  /* U+0045 LATIN CAPITAL LETTER E */
#define XK_F                           0x0046  /* U+0046 LATIN CAPITAL LETTER F */
#define XK_G                           0x0047  /* U+0047 LATIN CAPITAL LETTER G */
#define XK_H                           0x0048  /* U+0048 LATIN CAPITAL LETTER H */
#define XK_I                           0x0049  /* U+0049 LATIN CAPITAL LETTER I */
#define XK_J                           0x004a  /* U+004A LATIN CAPITAL LETTER J */
#define XK_K                           0x004b  /* U+004B LATIN CAPITAL LETTER K */
#define XK_L                           0x004c  /* U+004C LATIN CAPITAL LETTER L */
#define XK_M                           0x004d  /* U+004D LATIN CAPITAL LETTER M */
#define XK_N                           0x004e  /* U+004E LATIN CAPITAL LETTER N */
#define XK_O                           0x004f  /* U+004F LATIN CAPITAL LETTER O */
#define XK_P                           0x0050  /* U+0050 LATIN CAPITAL LETTER P */
#define XK_Q                           0x0051  /* U+0051 LATIN CAPITAL LETTER Q */
#define XK_R                           0x0052  /* U+0052 LATIN CAPITAL LETTER R */
#define XK_S                           0x0053  /* U+0053 LATIN CAPITAL LETTER S */
#define XK_T                           0x0054  /* U+0054 LATIN CAPITAL LETTER T */
#define XK_U                           0x0055  /* U+0055 LATIN CAPITAL LETTER U */
#define XK_V                           0x0056  /* U+0056 LATIN CAPITAL LETTER V */
#define XK_W                           0x0057  /* U+0057 LATIN CAPITAL LETTER W */
#define XK_X                           0x0058  /* U+0058 LATIN CAPITAL LETTER X */
#define XK_Y                           0x0059  /* U+0059 LATIN CAPITAL LETTER Y */
#define XK_Z                           0x005a  /* U+005A LATIN CAPITAL LETTER Z */
#define XK_bracketleft                 0x005b  /* U+005B LEFT SQUARE BRACKET */
#define XK_backslash                   0x005c  /* U+005C REVERSE SOLIDUS */
#define XK_bracketright                0x005d  /* U+005D RIGHT SQUARE BRACKET */
#define XK_asciicircum                 0x005e  /* U+005E CIRCUMFLEX ACCENT */
#define XK_underscore                  0x005f  /* U+005F LOW LINE */
#define XK_grave                       0x0060  /* U+0060 GRAVE ACCENT */
#define XK_quoteleft                   0x0060  /* deprecated */
#define XK_a                           0x0061  /* U+0061 LATIN SMALL LETTER A */
#define XK_b                           0x0062  /* U+0062 LATIN SMALL LETTER B */
#define XK_c                           0x0063  /* U+0063 LATIN SMALL LETTER C */
#define XK_d                           0x0064  /* U+0064 LATIN SMALL LETTER D */
#define XK_e                           0x0065  /* U+0065 LATIN SMALL LETTER E */
#define XK_f                           0x0066  /* U+0066 LATIN SMALL LETTER F */
#define XK_g                           0x0067  /* U+0067 LATIN SMALL LETTER G */
#define XK_h                           0x0068  /* U+0068 LATIN SMALL LETTER H */
#define XK_i                           0x0069  /* U+0069 LATIN SMALL LETTER I */
#define XK_j                           0x006a  /* U+006A LATIN SMALL LETTER J */
#define XK_k                           0x006b  /* U+006B LATIN SMALL LETTER K */
#define XK_l                           0x006c  /* U+006C LATIN SMALL LETTER L */
#define XK_m                           0x006d  /* U+006D LATIN SMALL LETTER M */
#define XK_n                           0x006e  /* U+006E LATIN SMALL LETTER N */
#define XK_o                           0x006f  /* U+006F LATIN SMALL LETTER O */
#define XK_p                           0x0070  /* U+0070 LATIN SMALL LETTER P */
#define XK_q                           0x0071  /* U+0071 LATIN SMALL LETTER Q */
#define XK_r                           0x0072  /* U+0072 LATIN SMALL LETTER R */
#define XK_s                           0x0073  /* U+0073 LATIN SMALL LETTER S */
#define XK_t                           0x0074  /* U+0074 LATIN SMALL LETTER T */
#define XK_u                           0x0075  /* U+0075 LATIN SMALL LETTER U */
#define XK_v                           0x0076  /* U+0076 LATIN SMALL LETTER V */
#define XK_w                           0x0077  /* U+0077 LATIN SMALL LETTER W */
#define XK_x                           0x0078  /* U+0078 LATIN SMALL LETTER X */
#define XK_y                           0x0079  /* U+0079 LATIN SMALL LETTER Y */
#define XK_z                           0x007a  /* U+007A LATIN SMALL LETTER Z */
#define XK_braceleft                   0x007b  /* U+007B LEFT CURLY BRACKET */
#define XK_bar                         0x007c  /* U+007C VERTICAL LINE */
#define XK_braceright                  0x007d  /* U+007D RIGHT CURLY BRACKET */
#define XK_asciitilde                  0x007e  /* U+007E TILDE */

#define XK_nobreakspace                0x00a0  /* U+00A0 NO-BREAK SPACE */
#define XK_exclamdown                  0x00a1  /* U+00A1 INVERTED EXCLAMATION MARK */
#define XK_cent                        0x00a2  /* U+00A2 CENT SIGN */
#define XK_sterling                    0x00a3  /* U+00A3 POUND SIGN */
#define XK_currency                    0x00a4  /* U+00A4 CURRENCY SIGN */
#define XK_yen                         0x00a5  /* U+00A5 YEN SIGN */
#define XK_brokenbar                   0x00a6  /* U+00A6 BROKEN BAR */
#define XK_section                     0x00a7  /* U+00A7 SECTION SIGN */
#define XK_diaeresis                   0x00a8  /* U+00A8 DIAERESIS */
#define XK_copyright                   0x00a9  /* U+00A9 COPYRIGHT SIGN */
#define XK_ordfeminine                 0x00aa  /* U+00AA FEMININE ORDINAL INDICATOR */
#define XK_guillemotleft               0x00ab  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
#define XK_notsign                     0x00ac  /* U+00AC NOT SIGN */
#define XK_hyphen                      0x00ad  /* U+00AD SOFT HYPHEN */
#define XK_registered                  0x00ae  /* U+00AE REGISTERED SIGN */
#define XK_macron                      0x00af  /* U+00AF MACRON */
#define XK_degree                      0x00b0  /* U+00B0 DEGREE SIGN */
#define XK_plusminus                   0x00b1  /* U+00B1 PLUS-MINUS SIGN */
#define XK_twosuperior                 0x00b2  /* U+00B2 SUPERSCRIPT TWO */
#define XK_threesuperior               0x00b3  /* U+00B3 SUPERSCRIPT THREE */
#define XK_acute                       0x00b4  /* U+00B4 ACUTE ACCENT */
#define XK_mu                          0x00b5  /* U+00B5 MICRO SIGN */
#define XK_paragraph                   0x00b6  /* U+00B6 PILCROW SIGN */
#define XK_periodcentered              0x00b7  /* U+00B7 MIDDLE DOT */
#define XK_cedilla                     0x00b8  /* U+00B8 CEDILLA */
#define XK_onesuperior                 0x00b9  /* U+00B9 SUPERSCRIPT ONE */
#define XK_masculine                   0x00ba  /* U+00BA MASCULINE ORDINAL INDICATOR */
#define XK_guillemotright              0x00bb  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
#define XK_onequarter                  0x00bc  /* U+00BC VULGAR FRACTION ONE QUARTER */
#define XK_onehalf                     0x00bd  /* U+00BD VULGAR FRACTION ONE HALF */
#define XK_threequarters               0x00be  /* U+00BE VULGAR FRACTION THREE QUARTERS */
#define XK_questiondown                0x00bf  /* U+00BF INVERTED QUESTION MARK */
#define XK_Agrave                      0x00c0  /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */
#define XK_Aacute                      0x00c1  /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */
#define XK_Acircumflex                 0x00c2  /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
#define XK_Atilde                      0x00c3  /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */
#define XK_Adiaeresis                  0x00c4  /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */
#define XK_Aring                       0x00c5  /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */
#define XK_AE                          0x00c6  /* U+00C6 LATIN CAPITAL LETTER AE */
#define XK_Ccedilla                    0x00c7  /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */
#define XK_Egrave                      0x00c8  /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */
#define XK_Eacute                      0x00c9  /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */
#define XK_Ecircumflex                 0x00ca  /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
#define XK_Ediaeresis                  0x00cb  /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */
#define XK_Igrave                      0x00cc  /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */
#define XK_Iacute                      0x00cd  /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */
#define XK_Icircumflex                 0x00ce  /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
#define XK_Idiaeresis                  0x00cf  /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */
#define XK_ETH                         0x00d0  /* U+00D0 LATIN CAPITAL LETTER ETH */
#define XK_Eth                         0x00d0  /* deprecated */
#define XK_Ntilde                      0x00d1  /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */
#define XK_Ograve                      0x00d2  /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */
#define XK_Oacute                      0x00d3  /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */
#define XK_Ocircumflex                 0x00d4  /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
#define XK_Otilde                      0x00d5  /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */
#define XK_Odiaeresis                  0x00d6  /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
#define XK_multiply                    0x00d7  /* U+00D7 MULTIPLICATION SIGN */
#define XK_Oslash                      0x00d8  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
#define XK_Ooblique                    0x00d8  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
#define XK_Ugrave                      0x00d9  /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
#define XK_Uacute                      0x00da  /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
#define XK_Ucircumflex                 0x00db  /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
#define XK_Udiaeresis                  0x00dc  /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */
#define XK_Yacute                      0x00dd  /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */
#define XK_THORN                       0x00de  /* U+00DE LATIN CAPITAL LETTER THORN */
#define XK_Thorn                       0x00de  /* deprecated */
#define XK_ssharp                      0x00df  /* U+00DF LATIN SMALL LETTER SHARP S */
#define XK_agrave                      0x00e0  /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */
#define XK_aacute                      0x00e1  /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */
#define XK_acircumflex                 0x00e2  /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */
#define XK_atilde                      0x00e3  /* U+00E3 LATIN SMALL LETTER A WITH TILDE */
#define XK_adiaeresis                  0x00e4  /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */
#define XK_aring                       0x00e5  /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */
#define XK_ae                          0x00e6  /* U+00E6 LATIN SMALL LETTER AE */
#define XK_ccedilla                    0x00e7  /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */
#define XK_egrave                      0x00e8  /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */
#define XK_eacute                      0x00e9  /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */
#define XK_ecircumflex                 0x00ea  /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */
#define XK_ediaeresis                  0x00eb  /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */
#define XK_igrave                      0x00ec  /* U+00EC LATIN SMALL LETTER I WITH GRAVE */
#define XK_iacute                      0x00ed  /* U+00ED LATIN SMALL LETTER I WITH ACUTE */
#define XK_icircumflex                 0x00ee  /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */
#define XK_idiaeresis                  0x00ef  /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */
#define XK_eth                         0x00f0  /* U+00F0 LATIN SMALL LETTER ETH */
#define XK_ntilde                      0x00f1  /* U+00F1 LATIN SMALL LETTER N WITH TILDE */
#define XK_ograve                      0x00f2  /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */
#define XK_oacute                      0x00f3  /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */
#define XK_ocircumflex                 0x00f4  /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */
#define XK_otilde                      0x00f5  /* U+00F5 LATIN SMALL LETTER O WITH TILDE */
#define XK_odiaeresis                  0x00f6  /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
#define XK_division                    0x00f7  /* U+00F7 DIVISION SIGN */
#define XK_oslash                      0x00f8  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
#define XK_ooblique                    0x00f8  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
#define XK_ugrave                      0x00f9  /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
#define XK_uacute                      0x00fa  /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
#define XK_ucircumflex                 0x00fb  /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
#define XK_udiaeresis                  0x00fc  /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */
#define XK_yacute                      0x00fd  /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */
#define XK_thorn                       0x00fe  /* U+00FE LATIN SMALL LETTER THORN */
#define XK_ydiaeresis                  0x00ff  /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */
#endif /* XK_LATIN1 */

/* Latin 2
 * Byte 3 = 1
 */

#ifdef XK_LATIN2
#define XK_Aogonek                     0x01a1  /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */
#define XK_breve                       0x01a2  /* U+02D8 BREVE */
#define XK_Lstroke                     0x01a3  /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */
#define XK_Lcaron                      0x01a5  /* U+013D LATIN CAPITAL LETTER L WITH CARON */
#define XK_Sacute                      0x01a6  /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */
#define XK_Scaron                      0x01a9  /* U+0160 LATIN CAPITAL LETTER S WITH CARON */
#define XK_Scedilla                    0x01aa  /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */
#define XK_Tcaron                      0x01ab  /* U+0164 LATIN CAPITAL LETTER T WITH CARON */
#define XK_Zacute                      0x01ac  /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */
#define XK_Zcaron                      0x01ae  /* U+017D LATIN CAPITAL LETTER Z WITH CARON */
#define XK_Zabovedot                   0x01af  /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */
#define XK_aogonek                     0x01b1  /* U+0105 LATIN SMALL LETTER A WITH OGONEK */
#define XK_ogonek                      0x01b2  /* U+02DB OGONEK */
#define XK_lstroke                     0x01b3  /* U+0142 LATIN SMALL LETTER L WITH STROKE */
#define XK_lcaron                      0x01b5  /* U+013E LATIN SMALL LETTER L WITH CARON */
#define XK_sacute                      0x01b6  /* U+015B LATIN SMALL LETTER S WITH ACUTE */
#define XK_caron                       0x01b7  /* U+02C7 CARON */
#define XK_scaron                      0x01b9  /* U+0161 LATIN SMALL LETTER S WITH CARON */
#define XK_scedilla                    0x01ba  /* U+015F LATIN SMALL LETTER S WITH CEDILLA */
#define XK_tcaron                      0x01bb  /* U+0165 LATIN SMALL LETTER T WITH CARON */
#define XK_zacute                      0x01bc  /* U+017A LATIN SMALL LETTER Z WITH ACUTE */
#define XK_doubleacute                 0x01bd  /* U+02DD DOUBLE ACUTE ACCENT */
#define XK_zcaron                      0x01be  /* U+017E LATIN SMALL LETTER Z WITH CARON */
#define XK_zabovedot                   0x01bf  /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */
#define XK_Racute                      0x01c0  /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */
#define XK_Abreve                      0x01c3  /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */
#define XK_Lacute                      0x01c5  /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */
#define XK_Cacute                      0x01c6  /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */
#define XK_Ccaron                      0x01c8  /* U+010C LATIN CAPITAL LETTER C WITH CARON */
#define XK_Eogonek                     0x01ca  /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */
#define XK_Ecaron                      0x01cc  /* U+011A LATIN CAPITAL LETTER E WITH CARON */
#define XK_Dcaron                      0x01cf  /* U+010E LATIN CAPITAL LETTER D WITH CARON */
#define XK_Dstroke                     0x01d0  /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */
#define XK_Nacute                      0x01d1  /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */
#define XK_Ncaron                      0x01d2  /* U+0147 LATIN CAPITAL LETTER N WITH CARON */
#define XK_Odoubleacute                0x01d5  /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
#define XK_Rcaron                      0x01d8  /* U+0158 LATIN CAPITAL LETTER R WITH CARON */
#define XK_Uring                       0x01d9  /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */
#define XK_Udoubleacute                0x01db  /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
#define XK_Tcedilla                    0x01de  /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */
#define XK_racute                      0x01e0  /* U+0155 LATIN SMALL LETTER R WITH ACUTE */
#define XK_abreve                      0x01e3  /* U+0103 LATIN SMALL LETTER A WITH BREVE */
#define XK_lacute                      0x01e5  /* U+013A LATIN SMALL LETTER L WITH ACUTE */
#define XK_cacute                      0x01e6  /* U+0107 LATIN SMALL LETTER C WITH ACUTE */
#define XK_ccaron                      0x01e8  /* U+010D LATIN SMALL LETTER C WITH CARON */
#define XK_eogonek                     0x01ea  /* U+0119 LATIN SMALL LETTER E WITH OGONEK */
#define XK_ecaron                      0x01ec  /* U+011B LATIN SMALL LETTER E WITH CARON */
#define XK_dcaron                      0x01ef  /* U+010F LATIN SMALL LETTER D WITH CARON */
#define XK_dstroke                     0x01f0  /* U+0111 LATIN SMALL LETTER D WITH STROKE */
#define XK_nacute                      0x01f1  /* U+0144 LATIN SMALL LETTER N WITH ACUTE */
#define XK_ncaron                      0x01f2  /* U+0148 LATIN SMALL LETTER N WITH CARON */
#define XK_odoubleacute                0x01f5  /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */
#define XK_udoubleacute                0x01fb  /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */
#define XK_rcaron                      0x01f8  /* U+0159 LATIN SMALL LETTER R WITH CARON */
#define XK_uring                       0x01f9  /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */
#define XK_tcedilla                    0x01fe  /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */
#define XK_abovedot                    0x01ff  /* U+02D9 DOT ABOVE */
#endif /* XK_LATIN2 */

/* Latin 3
 * Byte 3 = 2
 */

#ifdef XK_LATIN3
#define XK_Hstroke                     0x02a1  /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */
#define XK_Hcircumflex                 0x02a6  /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
#define XK_Iabovedot                   0x02a9  /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */
#define XK_Gbreve                      0x02ab  /* U+011E LATIN CAPITAL LETTER G WITH BREVE */
#define XK_Jcircumflex                 0x02ac  /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
#define XK_hstroke                     0x02b1  /* U+0127 LATIN SMALL LETTER H WITH STROKE */
#define XK_hcircumflex                 0x02b6  /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */
#define XK_idotless                    0x02b9  /* U+0131 LATIN SMALL LETTER DOTLESS I */
#define XK_gbreve                      0x02bb  /* U+011F LATIN SMALL LETTER G WITH BREVE */
#define XK_jcircumflex                 0x02bc  /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */
#define XK_Cabovedot                   0x02c5  /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */
#define XK_Ccircumflex                 0x02c6  /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
#define XK_Gabovedot                   0x02d5  /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */
#define XK_Gcircumflex                 0x02d8  /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
#define XK_Ubreve                      0x02dd  /* U+016C LATIN CAPITAL LETTER U WITH BREVE */
#define XK_Scircumflex                 0x02de  /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
#define XK_cabovedot                   0x02e5  /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */
#define XK_ccircumflex                 0x02e6  /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */
#define XK_gabovedot                   0x02f5  /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */
#define XK_gcircumflex                 0x02f8  /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */
#define XK_ubreve                      0x02fd  /* U+016D LATIN SMALL LETTER U WITH BREVE */
#define XK_scircumflex                 0x02fe  /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */
#endif /* XK_LATIN3 */

/* Latin 4
 * Byte 3 = 3
 */

#ifdef XK_LATIN4
#define XK_kra                         0x03a2  /* U+0138 LATIN SMALL LETTER KRA */
#define XK_kappa                       0x03a2  /* deprecated */
#define XK_Rcedilla                    0x03a3  /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */
#define XK_Itilde                      0x03a5  /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */
#define XK_Lcedilla                    0x03a6  /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */
#define XK_Emacron                     0x03aa  /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */
#define XK_Gcedilla                    0x03ab  /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */
#define XK_Tslash                      0x03ac  /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */
#define XK_rcedilla                    0x03b3  /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */
#define XK_itilde                      0x03b5  /* U+0129 LATIN SMALL LETTER I WITH TILDE */
#define XK_lcedilla                    0x03b6  /* U+013C LATIN SMALL LETTER L WITH CEDILLA */
#define XK_emacron                     0x03ba  /* U+0113 LATIN SMALL LETTER E WITH MACRON */
#define XK_gcedilla                    0x03bb  /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */
#define XK_tslash                      0x03bc  /* U+0167 LATIN SMALL LETTER T WITH STROKE */
#define XK_ENG                         0x03bd  /* U+014A LATIN CAPITAL LETTER ENG */
#define XK_eng                         0x03bf  /* U+014B LATIN SMALL LETTER ENG */
#define XK_Amacron                     0x03c0  /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */
#define XK_Iogonek                     0x03c7  /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */
#define XK_Eabovedot                   0x03cc  /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */
#define XK_Imacron                     0x03cf  /* U+012A LATIN CAPITAL LETTER I WITH MACRON */
#define XK_Ncedilla                    0x03d1  /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */
#define XK_Omacron                     0x03d2  /* U+014C LATIN CAPITAL LETTER O WITH MACRON */
#define XK_Kcedilla                    0x03d3  /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */
#define XK_Uogonek                     0x03d9  /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */
#define XK_Utilde                      0x03dd  /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */
#define XK_Umacron                     0x03de  /* U+016A LATIN CAPITAL LETTER U WITH MACRON */
#define XK_amacron                     0x03e0  /* U+0101 LATIN SMALL LETTER A WITH MACRON */
#define XK_iogonek                     0x03e7  /* U+012F LATIN SMALL LETTER I WITH OGONEK */
#define XK_eabovedot                   0x03ec  /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */
#define XK_imacron                     0x03ef  /* U+012B LATIN SMALL LETTER I WITH MACRON */
#define XK_ncedilla                    0x03f1  /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */
#define XK_omacron                     0x03f2  /* U+014D LATIN SMALL LETTER O WITH MACRON */
#define XK_kcedilla                    0x03f3  /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */
#define XK_uogonek                     0x03f9  /* U+0173 LATIN SMALL LETTER U WITH OGONEK */
#define XK_utilde                      0x03fd  /* U+0169 LATIN SMALL LETTER U WITH TILDE */
#define XK_umacron                     0x03fe  /* U+016B LATIN SMALL LETTER U WITH MACRON */
#endif /* XK_LATIN4 */

/* Latin 8
 */

#ifdef XK_LATIN8
#define XK_Babovedot                0x1001e02  /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */
#define XK_babovedot                0x1001e03  /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */
#define XK_Dabovedot                0x1001e0a  /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */
#define XK_Wgrave                   0x1001e80  /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */
#define XK_Wacute                   0x1001e82  /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */
#define XK_dabovedot                0x1001e0b  /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */
#define XK_Ygrave                   0x1001ef2  /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */
#define XK_Fabovedot                0x1001e1e  /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */
#define XK_fabovedot                0x1001e1f  /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */
#define XK_Mabovedot                0x1001e40  /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */
#define XK_mabovedot                0x1001e41  /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */
#define XK_Pabovedot                0x1001e56  /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */
#define XK_wgrave                   0x1001e81  /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */
#define XK_pabovedot                0x1001e57  /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */
#define XK_wacute                   0x1001e83  /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */
#define XK_Sabovedot                0x1001e60  /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */
#define XK_ygrave                   0x1001ef3  /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */
#define XK_Wdiaeresis               0x1001e84  /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */
#define XK_wdiaeresis               0x1001e85  /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */
#define XK_sabovedot                0x1001e61  /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */
#define XK_Wcircumflex              0x1000174  /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
#define XK_Tabovedot                0x1001e6a  /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */
#define XK_Ycircumflex              0x1000176  /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
#define XK_wcircumflex              0x1000175  /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */
#define XK_tabovedot                0x1001e6b  /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */
#define XK_ycircumflex              0x1000177  /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */
#endif /* XK_LATIN8 */

/* Latin 9
 * Byte 3 = 0x13
 */

#ifdef XK_LATIN9
#define XK_OE                          0x13bc  /* U+0152 LATIN CAPITAL LIGATURE OE */
#define XK_oe                          0x13bd  /* U+0153 LATIN SMALL LIGATURE OE */
#define XK_Ydiaeresis                  0x13be  /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */
#endif /* XK_LATIN9 */

/* Katakana
 * Byte 3 = 4
 */

#ifdef XK_KATAKANA
#define XK_overline                    0x047e  /* U+203E OVERLINE */
#define XK_kana_fullstop               0x04a1  /* U+3002 IDEOGRAPHIC FULL STOP */
#define XK_kana_openingbracket         0x04a2  /* U+300C LEFT CORNER BRACKET */
#define XK_kana_closingbracket         0x04a3  /* U+300D RIGHT CORNER BRACKET */
#define XK_kana_comma                  0x04a4  /* U+3001 IDEOGRAPHIC COMMA */
#define XK_kana_conjunctive            0x04a5  /* U+30FB KATAKANA MIDDLE DOT */
#define XK_kana_middledot              0x04a5  /* deprecated */
#define XK_kana_WO                     0x04a6  /* U+30F2 KATAKANA LETTER WO */
#define XK_kana_a                      0x04a7  /* U+30A1 KATAKANA LETTER SMALL A */
#define XK_kana_i                      0x04a8  /* U+30A3 KATAKANA LETTER SMALL I */
#define XK_kana_u                      0x04a9  /* U+30A5 KATAKANA LETTER SMALL U */
#define XK_kana_e                      0x04aa  /* U+30A7 KATAKANA LETTER SMALL E */
#define XK_kana_o                      0x04ab  /* U+30A9 KATAKANA LETTER SMALL O */
#define XK_kana_ya                     0x04ac  /* U+30E3 KATAKANA LETTER SMALL YA */
#define XK_kana_yu                     0x04ad  /* U+30E5 KATAKANA LETTER SMALL YU */
#define XK_kana_yo                     0x04ae  /* U+30E7 KATAKANA LETTER SMALL YO */
#define XK_kana_tsu                    0x04af  /* U+30C3 KATAKANA LETTER SMALL TU */
#define XK_kana_tu                     0x04af  /* deprecated */
#define XK_prolongedsound              0x04b0  /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */
#define XK_kana_A                      0x04b1  /* U+30A2 KATAKANA LETTER A */
#define XK_kana_I                      0x04b2  /* U+30A4 KATAKANA LETTER I */
#define XK_kana_U                      0x04b3  /* U+30A6 KATAKANA LETTER U */
#define XK_kana_E                      0x04b4  /* U+30A8 KATAKANA LETTER E */
#define XK_kana_O                      0x04b5  /* U+30AA KATAKANA LETTER O */
#define XK_kana_KA                     0x04b6  /* U+30AB KATAKANA LETTER KA */
#define XK_kana_KI                     0x04b7  /* U+30AD KATAKANA LETTER KI */
#define XK_kana_KU                     0x04b8  /* U+30AF KATAKANA LETTER KU */
#define XK_kana_KE                     0x04b9  /* U+30B1 KATAKANA LETTER KE */
#define XK_kana_KO                     0x04ba  /* U+30B3 KATAKANA LETTER KO */
#define XK_kana_SA                     0x04bb  /* U+30B5 KATAKANA LETTER SA */
#define XK_kana_SHI                    0x04bc  /* U+30B7 KATAKANA LETTER SI */
#define XK_kana_SU                     0x04bd  /* U+30B9 KATAKANA LETTER SU */
#define XK_kana_SE                     0x04be  /* U+30BB KATAKANA LETTER SE */
#define XK_kana_SO                     0x04bf  /* U+30BD KATAKANA LETTER SO */
#define XK_kana_TA                     0x04c0  /* U+30BF KATAKANA LETTER TA */
#define XK_kana_CHI                    0x04c1  /* U+30C1 KATAKANA LETTER TI */
#define XK_kana_TI                     0x04c1  /* deprecated */
#define XK_kana_TSU                    0x04c2  /* U+30C4 KATAKANA LETTER TU */
#define XK_kana_TU                     0x04c2  /* deprecated */
#define XK_kana_TE                     0x04c3  /* U+30C6 KATAKANA LETTER TE */
#define XK_kana_TO                     0x04c4  /* U+30C8 KATAKANA LETTER TO */
#define XK_kana_NA                     0x04c5  /* U+30CA KATAKANA LETTER NA */
#define XK_kana_NI                     0x04c6  /* U+30CB KATAKANA LETTER NI */
#define XK_kana_NU                     0x04c7  /* U+30CC KATAKANA LETTER NU */
#define XK_kana_NE                     0x04c8  /* U+30CD KATAKANA LETTER NE */
#define XK_kana_NO                     0x04c9  /* U+30CE KATAKANA LETTER NO */
#define XK_kana_HA                     0x04ca  /* U+30CF KATAKANA LETTER HA */
#define XK_kana_HI                     0x04cb  /* U+30D2 KATAKANA LETTER HI */
#define XK_kana_FU                     0x04cc  /* U+30D5 KATAKANA LETTER HU */
#define XK_kana_HU                     0x04cc  /* deprecated */
#define XK_kana_HE                     0x04cd  /* U+30D8 KATAKANA LETTER HE */
#define XK_kana_HO                     0x04ce  /* U+30DB KATAKANA LETTER HO */
#define XK_kana_MA                     0x04cf  /* U+30DE KATAKANA LETTER MA */
#define XK_kana_MI                     0x04d0  /* U+30DF KATAKANA LETTER MI */
#define XK_kana_MU                     0x04d1  /* U+30E0 KATAKANA LETTER MU */
#define XK_kana_ME                     0x04d2  /* U+30E1 KATAKANA LETTER ME */
#define XK_kana_MO                     0x04d3  /* U+30E2 KATAKANA LETTER MO */
#define XK_kana_YA                     0x04d4  /* U+30E4 KATAKANA LETTER YA */
#define XK_kana_YU                     0x04d5  /* U+30E6 KATAKANA LETTER YU */
#define XK_kana_YO                     0x04d6  /* U+30E8 KATAKANA LETTER YO */
#define XK_kana_RA                     0x04d7  /* U+30E9 KATAKANA LETTER RA */
#define XK_kana_RI                     0x04d8  /* U+30EA KATAKANA LETTER RI */
#define XK_kana_RU                     0x04d9  /* U+30EB KATAKANA LETTER RU */
#define XK_kana_RE                     0x04da  /* U+30EC KATAKANA LETTER RE */
#define XK_kana_RO                     0x04db  /* U+30ED KATAKANA LETTER RO */
#define XK_kana_WA                     0x04dc  /* U+30EF KATAKANA LETTER WA */
#define XK_kana_N                      0x04dd  /* U+30F3 KATAKANA LETTER N */
#define XK_voicedsound                 0x04de  /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */
#define XK_semivoicedsound             0x04df  /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
#define XK_kana_switch                 0xff7e  /* Alias for mode_switch */
#endif /* XK_KATAKANA */

/* Arabic
 * Byte 3 = 5
 */

#ifdef XK_ARABIC
#define XK_Farsi_0                  0x10006f0  /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */
#define XK_Farsi_1                  0x10006f1  /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */
#define XK_Farsi_2                  0x10006f2  /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */
#define XK_Farsi_3                  0x10006f3  /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */
#define XK_Farsi_4                  0x10006f4  /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */
#define XK_Farsi_5                  0x10006f5  /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */
#define XK_Farsi_6                  0x10006f6  /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */
#define XK_Farsi_7                  0x10006f7  /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */
#define XK_Farsi_8                  0x10006f8  /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */
#define XK_Farsi_9                  0x10006f9  /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */
#define XK_Arabic_percent           0x100066a  /* U+066A ARABIC PERCENT SIGN */
#define XK_Arabic_superscript_alef  0x1000670  /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */
#define XK_Arabic_tteh              0x1000679  /* U+0679 ARABIC LETTER TTEH */
#define XK_Arabic_peh               0x100067e  /* U+067E ARABIC LETTER PEH */
#define XK_Arabic_tcheh             0x1000686  /* U+0686 ARABIC LETTER TCHEH */
#define XK_Arabic_ddal              0x1000688  /* U+0688 ARABIC LETTER DDAL */
#define XK_Arabic_rreh              0x1000691  /* U+0691 ARABIC LETTER RREH */
#define XK_Arabic_comma                0x05ac  /* U+060C ARABIC COMMA */
#define XK_Arabic_fullstop          0x10006d4  /* U+06D4 ARABIC FULL STOP */
#define XK_Arabic_0                 0x1000660  /* U+0660 ARABIC-INDIC DIGIT ZERO */
#define XK_Arabic_1                 0x1000661  /* U+0661 ARABIC-INDIC DIGIT ONE */
#define XK_Arabic_2                 0x1000662  /* U+0662 ARABIC-INDIC DIGIT TWO */
#define XK_Arabic_3                 0x1000663  /* U+0663 ARABIC-INDIC DIGIT THREE */
#define XK_Arabic_4                 0x1000664  /* U+0664 ARABIC-INDIC DIGIT FOUR */
#define XK_Arabic_5                 0x1000665  /* U+0665 ARABIC-INDIC DIGIT FIVE */
#define XK_Arabic_6                 0x1000666  /* U+0666 ARABIC-INDIC DIGIT SIX */
#define XK_Arabic_7                 0x1000667  /* U+0667 ARABIC-INDIC DIGIT SEVEN */
#define XK_Arabic_8                 0x1000668  /* U+0668 ARABIC-INDIC DIGIT EIGHT */
#define XK_Arabic_9                 0x1000669  /* U+0669 ARABIC-INDIC DIGIT NINE */
#define XK_Arabic_semicolon            0x05bb  /* U+061B ARABIC SEMICOLON */
#define XK_Arabic_question_mark        0x05bf  /* U+061F ARABIC QUESTION MARK */
#define XK_Arabic_hamza                0x05c1  /* U+0621 ARABIC LETTER HAMZA */
#define XK_Arabic_maddaonalef          0x05c2  /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
#define XK_Arabic_hamzaonalef          0x05c3  /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
#define XK_Arabic_hamzaonwaw           0x05c4  /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
#define XK_Arabic_hamzaunderalef       0x05c5  /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
#define XK_Arabic_hamzaonyeh           0x05c6  /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
#define XK_Arabic_alef                 0x05c7  /* U+0627 ARABIC LETTER ALEF */
#define XK_Arabic_beh                  0x05c8  /* U+0628 ARABIC LETTER BEH */
#define XK_Arabic_tehmarbuta           0x05c9  /* U+0629 ARABIC LETTER TEH MARBUTA */
#define XK_Arabic_teh                  0x05ca  /* U+062A ARABIC LETTER TEH */
#define XK_Arabic_theh                 0x05cb  /* U+062B ARABIC LETTER THEH */
#define XK_Arabic_jeem                 0x05cc  /* U+062C ARABIC LETTER JEEM */
#define XK_Arabic_hah                  0x05cd  /* U+062D ARABIC LETTER HAH */
#define XK_Arabic_khah                 0x05ce  /* U+062E ARABIC LETTER KHAH */
#define XK_Arabic_dal                  0x05cf  /* U+062F ARABIC LETTER DAL */
#define XK_Arabic_thal                 0x05d0  /* U+0630 ARABIC LETTER THAL */
#define XK_Arabic_ra                   0x05d1  /* U+0631 ARABIC LETTER REH */
#define XK_Arabic_zain                 0x05d2  /* U+0632 ARABIC LETTER ZAIN */
#define XK_Arabic_seen                 0x05d3  /* U+0633 ARABIC LETTER SEEN */
#define XK_Arabic_sheen                0x05d4  /* U+0634 ARABIC LETTER SHEEN */
#define XK_Arabic_sad                  0x05d5  /* U+0635 ARABIC LETTER SAD */
#define XK_Arabic_dad                  0x05d6  /* U+0636 ARABIC LETTER DAD */
#define XK_Arabic_tah                  0x05d7  /* U+0637 ARABIC LETTER TAH */
#define XK_Arabic_zah                  0x05d8  /* U+0638 ARABIC LETTER ZAH */
#define XK_Arabic_ain                  0x05d9  /* U+0639 ARABIC LETTER AIN */
#define XK_Arabic_ghain                0x05da  /* U+063A ARABIC LETTER GHAIN */
#define XK_Arabic_tatweel              0x05e0  /* U+0640 ARABIC TATWEEL */
#define XK_Arabic_feh                  0x05e1  /* U+0641 ARABIC LETTER FEH */
#define XK_Arabic_qaf                  0x05e2  /* U+0642 ARABIC LETTER QAF */
#define XK_Arabic_kaf                  0x05e3  /* U+0643 ARABIC LETTER KAF */
#define XK_Arabic_lam                  0x05e4  /* U+0644 ARABIC LETTER LAM */
#define XK_Arabic_meem                 0x05e5  /* U+0645 ARABIC LETTER MEEM */
#define XK_Arabic_noon                 0x05e6  /* U+0646 ARABIC LETTER NOON */
#define XK_Arabic_ha                   0x05e7  /* U+0647 ARABIC LETTER HEH */
#define XK_Arabic_heh                  0x05e7  /* deprecated */
#define XK_Arabic_waw                  0x05e8  /* U+0648 ARABIC LETTER WAW */
#define XK_Arabic_alefmaksura          0x05e9  /* U+0649 ARABIC LETTER ALEF MAKSURA */
#define XK_Arabic_yeh                  0x05ea  /* U+064A ARABIC LETTER YEH */
#define XK_Arabic_fathatan             0x05eb  /* U+064B ARABIC FATHATAN */
#define XK_Arabic_dammatan             0x05ec  /* U+064C ARABIC DAMMATAN */
#define XK_Arabic_kasratan             0x05ed  /* U+064D ARABIC KASRATAN */
#define XK_Arabic_fatha                0x05ee  /* U+064E ARABIC FATHA */
#define XK_Arabic_damma                0x05ef  /* U+064F ARABIC DAMMA */
#define XK_Arabic_kasra                0x05f0  /* U+0650 ARABIC KASRA */
#define XK_Arabic_shadda               0x05f1  /* U+0651 ARABIC SHADDA */
#define XK_Arabic_sukun                0x05f2  /* U+0652 ARABIC SUKUN */
#define XK_Arabic_madda_above       0x1000653  /* U+0653 ARABIC MADDAH ABOVE */
#define XK_Arabic_hamza_above       0x1000654  /* U+0654 ARABIC HAMZA ABOVE */
#define XK_Arabic_hamza_below       0x1000655  /* U+0655 ARABIC HAMZA BELOW */
#define XK_Arabic_jeh               0x1000698  /* U+0698 ARABIC LETTER JEH */
#define XK_Arabic_veh               0x10006a4  /* U+06A4 ARABIC LETTER VEH */
#define XK_Arabic_keheh             0x10006a9  /* U+06A9 ARABIC LETTER KEHEH */
#define XK_Arabic_gaf               0x10006af  /* U+06AF ARABIC LETTER GAF */
#define XK_Arabic_noon_ghunna       0x10006ba  /* U+06BA ARABIC LETTER NOON GHUNNA */
#define XK_Arabic_heh_doachashmee   0x10006be  /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
#define XK_Farsi_yeh                0x10006cc  /* U+06CC ARABIC LETTER FARSI YEH */
#define XK_Arabic_farsi_yeh         0x10006cc  /* U+06CC ARABIC LETTER FARSI YEH */
#define XK_Arabic_yeh_baree         0x10006d2  /* U+06D2 ARABIC LETTER YEH BARREE */
#define XK_Arabic_heh_goal          0x10006c1  /* U+06C1 ARABIC LETTER HEH GOAL */
#define XK_Arabic_switch               0xff7e  /* Alias for mode_switch */
#endif /* XK_ARABIC */

/* Cyrillic
 * Byte 3 = 6
 */

#ifdef XK_CYRILLIC
#define XK_Cyrillic_GHE_bar         0x1000492  /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */
#define XK_Cyrillic_ghe_bar         0x1000493  /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */
#define XK_Cyrillic_ZHE_descender   0x1000496  /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
#define XK_Cyrillic_zhe_descender   0x1000497  /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */
#define XK_Cyrillic_KA_descender    0x100049a  /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
#define XK_Cyrillic_ka_descender    0x100049b  /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */
#define XK_Cyrillic_KA_vertstroke   0x100049c  /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
#define XK_Cyrillic_ka_vertstroke   0x100049d  /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */
#define XK_Cyrillic_EN_descender    0x10004a2  /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
#define XK_Cyrillic_en_descender    0x10004a3  /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */
#define XK_Cyrillic_U_straight      0x10004ae  /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */
#define XK_Cyrillic_u_straight      0x10004af  /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */
#define XK_Cyrillic_U_straight_bar  0x10004b0  /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
#define XK_Cyrillic_u_straight_bar  0x10004b1  /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */
#define XK_Cyrillic_HA_descender    0x10004b2  /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
#define XK_Cyrillic_ha_descender    0x10004b3  /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */
#define XK_Cyrillic_CHE_descender   0x10004b6  /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
#define XK_Cyrillic_che_descender   0x10004b7  /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */
#define XK_Cyrillic_CHE_vertstroke  0x10004b8  /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
#define XK_Cyrillic_che_vertstroke  0x10004b9  /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */
#define XK_Cyrillic_SHHA            0x10004ba  /* U+04BA CYRILLIC CAPITAL LETTER SHHA */
#define XK_Cyrillic_shha            0x10004bb  /* U+04BB CYRILLIC SMALL LETTER SHHA */

#define XK_Cyrillic_SCHWA           0x10004d8  /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */
#define XK_Cyrillic_schwa           0x10004d9  /* U+04D9 CYRILLIC SMALL LETTER SCHWA */
#define XK_Cyrillic_I_macron        0x10004e2  /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */
#define XK_Cyrillic_i_macron        0x10004e3  /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */
#define XK_Cyrillic_O_bar           0x10004e8  /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */
#define XK_Cyrillic_o_bar           0x10004e9  /* U+04E9 CYRILLIC SMALL LETTER BARRED O */
#define XK_Cyrillic_U_macron        0x10004ee  /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */
#define XK_Cyrillic_u_macron        0x10004ef  /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */

#define XK_Serbian_dje                 0x06a1  /* U+0452 CYRILLIC SMALL LETTER DJE */
#define XK_Macedonia_gje               0x06a2  /* U+0453 CYRILLIC SMALL LETTER GJE */
#define XK_Cyrillic_io                 0x06a3  /* U+0451 CYRILLIC SMALL LETTER IO */
#define XK_Ukrainian_ie                0x06a4  /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */
#define XK_Ukranian_je                 0x06a4  /* deprecated */
#define XK_Macedonia_dse               0x06a5  /* U+0455 CYRILLIC SMALL LETTER DZE */
#define XK_Ukrainian_i                 0x06a6  /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
#define XK_Ukranian_i                  0x06a6  /* deprecated */
#define XK_Ukrainian_yi                0x06a7  /* U+0457 CYRILLIC SMALL LETTER YI */
#define XK_Ukranian_yi                 0x06a7  /* deprecated */
#define XK_Cyrillic_je                 0x06a8  /* U+0458 CYRILLIC SMALL LETTER JE */
#define XK_Serbian_je                  0x06a8  /* deprecated */
#define XK_Cyrillic_lje                0x06a9  /* U+0459 CYRILLIC SMALL LETTER LJE */
#define XK_Serbian_lje                 0x06a9  /* deprecated */
#define XK_Cyrillic_nje                0x06aa  /* U+045A CYRILLIC SMALL LETTER NJE */
#define XK_Serbian_nje                 0x06aa  /* deprecated */
#define XK_Serbian_tshe                0x06ab  /* U+045B CYRILLIC SMALL LETTER TSHE */
#define XK_Macedonia_kje               0x06ac  /* U+045C CYRILLIC SMALL LETTER KJE */
#define XK_Ukrainian_ghe_with_upturn   0x06ad  /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */
#define XK_Byelorussian_shortu         0x06ae  /* U+045E CYRILLIC SMALL LETTER SHORT U */
#define XK_Cyrillic_dzhe               0x06af  /* U+045F CYRILLIC SMALL LETTER DZHE */
#define XK_Serbian_dze                 0x06af  /* deprecated */
#define XK_numerosign                  0x06b0  /* U+2116 NUMERO SIGN */
#define XK_Serbian_DJE                 0x06b1  /* U+0402 CYRILLIC CAPITAL LETTER DJE */
#define XK_Macedonia_GJE               0x06b2  /* U+0403 CYRILLIC CAPITAL LETTER GJE */
#define XK_Cyrillic_IO                 0x06b3  /* U+0401 CYRILLIC CAPITAL LETTER IO */
#define XK_Ukrainian_IE                0x06b4  /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */
#define XK_Ukranian_JE                 0x06b4  /* deprecated */
#define XK_Macedonia_DSE               0x06b5  /* U+0405 CYRILLIC CAPITAL LETTER DZE */
#define XK_Ukrainian_I                 0x06b6  /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
#define XK_Ukranian_I                  0x06b6  /* deprecated */
#define XK_Ukrainian_YI                0x06b7  /* U+0407 CYRILLIC CAPITAL LETTER YI */
#define XK_Ukranian_YI                 0x06b7  /* deprecated */
#define XK_Cyrillic_JE                 0x06b8  /* U+0408 CYRILLIC CAPITAL LETTER JE */
#define XK_Serbian_JE                  0x06b8  /* deprecated */
#define XK_Cyrillic_LJE                0x06b9  /* U+0409 CYRILLIC CAPITAL LETTER LJE */
#define XK_Serbian_LJE                 0x06b9  /* deprecated */
#define XK_Cyrillic_NJE                0x06ba  /* U+040A CYRILLIC CAPITAL LETTER NJE */
#define XK_Serbian_NJE                 0x06ba  /* deprecated */
#define XK_Serbian_TSHE                0x06bb  /* U+040B CYRILLIC CAPITAL LETTER TSHE */
#define XK_Macedonia_KJE               0x06bc  /* U+040C CYRILLIC CAPITAL LETTER KJE */
#define XK_Ukrainian_GHE_WITH_UPTURN   0x06bd  /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
#define XK_Byelorussian_SHORTU         0x06be  /* U+040E CYRILLIC CAPITAL LETTER SHORT U */
#define XK_Cyrillic_DZHE               0x06bf  /* U+040F CYRILLIC CAPITAL LETTER DZHE */
#define XK_Serbian_DZE                 0x06bf  /* deprecated */
#define XK_Cyrillic_yu                 0x06c0  /* U+044E CYRILLIC SMALL LETTER YU */
#define XK_Cyrillic_a                  0x06c1  /* U+0430 CYRILLIC SMALL LETTER A */
#define XK_Cyrillic_be                 0x06c2  /* U+0431 CYRILLIC SMALL LETTER BE */
#define XK_Cyrillic_tse                0x06c3  /* U+0446 CYRILLIC SMALL LETTER TSE */
#define XK_Cyrillic_de                 0x06c4  /* U+0434 CYRILLIC SMALL LETTER DE */
#define XK_Cyrillic_ie                 0x06c5  /* U+0435 CYRILLIC SMALL LETTER IE */
#define XK_Cyrillic_ef                 0x06c6  /* U+0444 CYRILLIC SMALL LETTER EF */
#define XK_Cyrillic_ghe                0x06c7  /* U+0433 CYRILLIC SMALL LETTER GHE */
#define XK_Cyrillic_ha                 0x06c8  /* U+0445 CYRILLIC SMALL LETTER HA */
#define XK_Cyrillic_i                  0x06c9  /* U+0438 CYRILLIC SMALL LETTER I */
#define XK_Cyrillic_shorti             0x06ca  /* U+0439 CYRILLIC SMALL LETTER SHORT I */
#define XK_Cyrillic_ka                 0x06cb  /* U+043A CYRILLIC SMALL LETTER KA */
#define XK_Cyrillic_el                 0x06cc  /* U+043B CYRILLIC SMALL LETTER EL */
#define XK_Cyrillic_em                 0x06cd  /* U+043C CYRILLIC SMALL LETTER EM */
#define XK_Cyrillic_en                 0x06ce  /* U+043D CYRILLIC SMALL LETTER EN */
#define XK_Cyrillic_o                  0x06cf  /* U+043E CYRILLIC SMALL LETTER O */
#define XK_Cyrillic_pe                 0x06d0  /* U+043F CYRILLIC SMALL LETTER PE */
#define XK_Cyrillic_ya                 0x06d1  /* U+044F CYRILLIC SMALL LETTER YA */
#define XK_Cyrillic_er                 0x06d2  /* U+0440 CYRILLIC SMALL LETTER ER */
#define XK_Cyrillic_es                 0x06d3  /* U+0441 CYRILLIC SMALL LETTER ES */
#define XK_Cyrillic_te                 0x06d4  /* U+0442 CYRILLIC SMALL LETTER TE */
#define XK_Cyrillic_u                  0x06d5  /* U+0443 CYRILLIC SMALL LETTER U */
#define XK_Cyrillic_zhe                0x06d6  /* U+0436 CYRILLIC SMALL LETTER ZHE */
#define XK_Cyrillic_ve                 0x06d7  /* U+0432 CYRILLIC SMALL LETTER VE */
#define XK_Cyrillic_softsign           0x06d8  /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */
#define XK_Cyrillic_yeru               0x06d9  /* U+044B CYRILLIC SMALL LETTER YERU */
#define XK_Cyrillic_ze                 0x06da  /* U+0437 CYRILLIC SMALL LETTER ZE */
#define XK_Cyrillic_sha                0x06db  /* U+0448 CYRILLIC SMALL LETTER SHA */
#define XK_Cyrillic_e                  0x06dc  /* U+044D CYRILLIC SMALL LETTER E */
#define XK_Cyrillic_shcha              0x06dd  /* U+0449 CYRILLIC SMALL LETTER SHCHA */
#define XK_Cyrillic_che                0x06de  /* U+0447 CYRILLIC SMALL LETTER CHE */
#define XK_Cyrillic_hardsign           0x06df  /* U+044A CYRILLIC SMALL LETTER HARD SIGN */
#define XK_Cyrillic_YU                 0x06e0  /* U+042E CYRILLIC CAPITAL LETTER YU */
#define XK_Cyrillic_A                  0x06e1  /* U+0410 CYRILLIC CAPITAL LETTER A */
#define XK_Cyrillic_BE                 0x06e2  /* U+0411 CYRILLIC CAPITAL LETTER BE */
#define XK_Cyrillic_TSE                0x06e3  /* U+0426 CYRILLIC CAPITAL LETTER TSE */
#define XK_Cyrillic_DE                 0x06e4  /* U+0414 CYRILLIC CAPITAL LETTER DE */
#define XK_Cyrillic_IE                 0x06e5  /* U+0415 CYRILLIC CAPITAL LETTER IE */
#define XK_Cyrillic_EF                 0x06e6  /* U+0424 CYRILLIC CAPITAL LETTER EF */
#define XK_Cyrillic_GHE                0x06e7  /* U+0413 CYRILLIC CAPITAL LETTER GHE */
#define XK_Cyrillic_HA                 0x06e8  /* U+0425 CYRILLIC CAPITAL LETTER HA */
#define XK_Cyrillic_I                  0x06e9  /* U+0418 CYRILLIC CAPITAL LETTER I */
#define XK_Cyrillic_SHORTI             0x06ea  /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */
#define XK_Cyrillic_KA                 0x06eb  /* U+041A CYRILLIC CAPITAL LETTER KA */
#define XK_Cyrillic_EL                 0x06ec  /* U+041B CYRILLIC CAPITAL LETTER EL */
#define XK_Cyrillic_EM                 0x06ed  /* U+041C CYRILLIC CAPITAL LETTER EM */
#define XK_Cyrillic_EN                 0x06ee  /* U+041D CYRILLIC CAPITAL LETTER EN */
#define XK_Cyrillic_O                  0x06ef  /* U+041E CYRILLIC CAPITAL LETTER O */
#define XK_Cyrillic_PE                 0x06f0  /* U+041F CYRILLIC CAPITAL LETTER PE */
#define XK_Cyrillic_YA                 0x06f1  /* U+042F CYRILLIC CAPITAL LETTER YA */
#define XK_Cyrillic_ER                 0x06f2  /* U+0420 CYRILLIC CAPITAL LETTER ER */
#define XK_Cyrillic_ES                 0x06f3  /* U+0421 CYRILLIC CAPITAL LETTER ES */
#define XK_Cyrillic_TE                 0x06f4  /* U+0422 CYRILLIC CAPITAL LETTER TE */
#define XK_Cyrillic_U                  0x06f5  /* U+0423 CYRILLIC CAPITAL LETTER U */
#define XK_Cyrillic_ZHE                0x06f6  /* U+0416 CYRILLIC CAPITAL LETTER ZHE */
#define XK_Cyrillic_VE                 0x06f7  /* U+0412 CYRILLIC CAPITAL LETTER VE */
#define XK_Cyrillic_SOFTSIGN           0x06f8  /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */
#define XK_Cyrillic_YERU               0x06f9  /* U+042B CYRILLIC CAPITAL LETTER YERU */
#define XK_Cyrillic_ZE                 0x06fa  /* U+0417 CYRILLIC CAPITAL LETTER ZE */
#define XK_Cyrillic_SHA                0x06fb  /* U+0428 CYRILLIC CAPITAL LETTER SHA */
#define XK_Cyrillic_E                  0x06fc  /* U+042D CYRILLIC CAPITAL LETTER E */
#define XK_Cyrillic_SHCHA              0x06fd  /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */
#define XK_Cyrillic_CHE                0x06fe  /* U+0427 CYRILLIC CAPITAL LETTER CHE */
#define XK_Cyrillic_HARDSIGN           0x06ff  /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */
#endif /* XK_CYRILLIC */

/* Greek
 * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
 * Byte 3 = 7
 */

#ifdef XK_GREEK
#define XK_Greek_ALPHAaccent           0x07a1  /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */
#define XK_Greek_EPSILONaccent         0x07a2  /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */
#define XK_Greek_ETAaccent             0x07a3  /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */
#define XK_Greek_IOTAaccent            0x07a4  /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */
#define XK_Greek_IOTAdieresis          0x07a5  /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
#define XK_Greek_IOTAdiaeresis         0x07a5  /* old typo */
#define XK_Greek_OMICRONaccent         0x07a7  /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */
#define XK_Greek_UPSILONaccent         0x07a8  /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */
#define XK_Greek_UPSILONdieresis       0x07a9  /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
#define XK_Greek_OMEGAaccent           0x07ab  /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */
#define XK_Greek_accentdieresis        0x07ae  /* U+0385 GREEK DIALYTIKA TONOS */
#define XK_Greek_horizbar              0x07af  /* U+2015 HORIZONTAL BAR */
#define XK_Greek_alphaaccent           0x07b1  /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */
#define XK_Greek_epsilonaccent         0x07b2  /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */
#define XK_Greek_etaaccent             0x07b3  /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */
#define XK_Greek_iotaaccent            0x07b4  /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */
#define XK_Greek_iotadieresis          0x07b5  /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */
#define XK_Greek_iotaaccentdieresis    0x07b6  /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
#define XK_Greek_omicronaccent         0x07b7  /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */
#define XK_Greek_upsilonaccent         0x07b8  /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */
#define XK_Greek_upsilondieresis       0x07b9  /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
#define XK_Greek_upsilonaccentdieresis 0x07ba  /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
#define XK_Greek_omegaaccent           0x07bb  /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */
#define XK_Greek_ALPHA                 0x07c1  /* U+0391 GREEK CAPITAL LETTER ALPHA */
#define XK_Greek_BETA                  0x07c2  /* U+0392 GREEK CAPITAL LETTER BETA */
#define XK_Greek_GAMMA                 0x07c3  /* U+0393 GREEK CAPITAL LETTER GAMMA */
#define XK_Greek_DELTA                 0x07c4  /* U+0394 GREEK CAPITAL LETTER DELTA */
#define XK_Greek_EPSILON               0x07c5  /* U+0395 GREEK CAPITAL LETTER EPSILON */
#define XK_Greek_ZETA                  0x07c6  /* U+0396 GREEK CAPITAL LETTER ZETA */
#define XK_Greek_ETA                   0x07c7  /* U+0397 GREEK CAPITAL LETTER ETA */
#define XK_Greek_THETA                 0x07c8  /* U+0398 GREEK CAPITAL LETTER THETA */
#define XK_Greek_IOTA                  0x07c9  /* U+0399 GREEK CAPITAL LETTER IOTA */
#define XK_Greek_KAPPA                 0x07ca  /* U+039A GREEK CAPITAL LETTER KAPPA */
#define XK_Greek_LAMDA                 0x07cb  /* U+039B GREEK CAPITAL LETTER LAMDA */
#define XK_Greek_LAMBDA                0x07cb  /* U+039B GREEK CAPITAL LETTER LAMDA */
#define XK_Greek_MU                    0x07cc  /* U+039C GREEK CAPITAL LETTER MU */
#define XK_Greek_NU                    0x07cd  /* U+039D GREEK CAPITAL LETTER NU */
#define XK_Greek_XI                    0x07ce  /* U+039E GREEK CAPITAL LETTER XI */
#define XK_Greek_OMICRON               0x07cf  /* U+039F GREEK CAPITAL LETTER OMICRON */
#define XK_Greek_PI                    0x07d0  /* U+03A0 GREEK CAPITAL LETTER PI */
#define XK_Greek_RHO                   0x07d1  /* U+03A1 GREEK CAPITAL LETTER RHO */
#define XK_Greek_SIGMA                 0x07d2  /* U+03A3 GREEK CAPITAL LETTER SIGMA */
#define XK_Greek_TAU                   0x07d4  /* U+03A4 GREEK CAPITAL LETTER TAU */
#define XK_Greek_UPSILON               0x07d5  /* U+03A5 GREEK CAPITAL LETTER UPSILON */
#define XK_Greek_PHI                   0x07d6  /* U+03A6 GREEK CAPITAL LETTER PHI */
#define XK_Greek_CHI                   0x07d7  /* U+03A7 GREEK CAPITAL LETTER CHI */
#define XK_Greek_PSI                   0x07d8  /* U+03A8 GREEK CAPITAL LETTER PSI */
#define XK_Greek_OMEGA                 0x07d9  /* U+03A9 GREEK CAPITAL LETTER OMEGA */
#define XK_Greek_alpha                 0x07e1  /* U+03B1 GREEK SMALL LETTER ALPHA */
#define XK_Greek_beta                  0x07e2  /* U+03B2 GREEK SMALL LETTER BETA */
#define XK_Greek_gamma                 0x07e3  /* U+03B3 GREEK SMALL LETTER GAMMA */
#define XK_Greek_delta                 0x07e4  /* U+03B4 GREEK SMALL LETTER DELTA */
#define XK_Greek_epsilon               0x07e5  /* U+03B5 GREEK SMALL LETTER EPSILON */
#define XK_Greek_zeta                  0x07e6  /* U+03B6 GREEK SMALL LETTER ZETA */
#define XK_Greek_eta                   0x07e7  /* U+03B7 GREEK SMALL LETTER ETA */
#define XK_Greek_theta                 0x07e8  /* U+03B8 GREEK SMALL LETTER THETA */
#define XK_Greek_iota                  0x07e9  /* U+03B9 GREEK SMALL LETTER IOTA */
#define XK_Greek_kappa                 0x07ea  /* U+03BA GREEK SMALL LETTER KAPPA */
#define XK_Greek_lamda                 0x07eb  /* U+03BB GREEK SMALL LETTER LAMDA */
#define XK_Greek_lambda                0x07eb  /* U+03BB GREEK SMALL LETTER LAMDA */
#define XK_Greek_mu                    0x07ec  /* U+03BC GREEK SMALL LETTER MU */
#define XK_Greek_nu                    0x07ed  /* U+03BD GREEK SMALL LETTER NU */
#define XK_Greek_xi                    0x07ee  /* U+03BE GREEK SMALL LETTER XI */
#define XK_Greek_omicron               0x07ef  /* U+03BF GREEK SMALL LETTER OMICRON */
#define XK_Greek_pi                    0x07f0  /* U+03C0 GREEK SMALL LETTER PI */
#define XK_Greek_rho                   0x07f1  /* U+03C1 GREEK SMALL LETTER RHO */
#define XK_Greek_sigma                 0x07f2  /* U+03C3 GREEK SMALL LETTER SIGMA */
#define XK_Greek_finalsmallsigma       0x07f3  /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */
#define XK_Greek_tau                   0x07f4  /* U+03C4 GREEK SMALL LETTER TAU */
#define XK_Greek_upsilon               0x07f5  /* U+03C5 GREEK SMALL LETTER UPSILON */
#define XK_Greek_phi                   0x07f6  /* U+03C6 GREEK SMALL LETTER PHI */
#define XK_Greek_chi                   0x07f7  /* U+03C7 GREEK SMALL LETTER CHI */
#define XK_Greek_psi                   0x07f8  /* U+03C8 GREEK SMALL LETTER PSI */
#define XK_Greek_omega                 0x07f9  /* U+03C9 GREEK SMALL LETTER OMEGA */
#define XK_Greek_switch                0xff7e  /* Alias for mode_switch */
#endif /* XK_GREEK */

/* Technical
 * (from the DEC VT330/VT420 Technical Character Set,
 *  http://vt100.net/charsets/technical.html)
 * Byte 3 = 8
 */

#ifdef XK_TECHNICAL
#define XK_leftradical                 0x08a1  /* U+23B7 RADICAL SYMBOL BOTTOM */
#define XK_topleftradical              0x08a2  /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */
#define XK_horizconnector              0x08a3  /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */
#define XK_topintegral                 0x08a4  /* U+2320 TOP HALF INTEGRAL */
#define XK_botintegral                 0x08a5  /* U+2321 BOTTOM HALF INTEGRAL */
#define XK_vertconnector               0x08a6  /* U+2502 BOX DRAWINGS LIGHT VERTICAL */
#define XK_topleftsqbracket            0x08a7  /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */
#define XK_botleftsqbracket            0x08a8  /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */
#define XK_toprightsqbracket           0x08a9  /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */
#define XK_botrightsqbracket           0x08aa  /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */
#define XK_topleftparens               0x08ab  /* U+239B LEFT PARENTHESIS UPPER HOOK */
#define XK_botleftparens               0x08ac  /* U+239D LEFT PARENTHESIS LOWER HOOK */
#define XK_toprightparens              0x08ad  /* U+239E RIGHT PARENTHESIS UPPER HOOK */
#define XK_botrightparens              0x08ae  /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */
#define XK_leftmiddlecurlybrace        0x08af  /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */
#define XK_rightmiddlecurlybrace       0x08b0  /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */
#define XK_topleftsummation            0x08b1
#define XK_botleftsummation            0x08b2
#define XK_topvertsummationconnector   0x08b3
#define XK_botvertsummationconnector   0x08b4
#define XK_toprightsummation           0x08b5
#define XK_botrightsummation           0x08b6
#define XK_rightmiddlesummation        0x08b7
#define XK_lessthanequal               0x08bc  /* U+2264 LESS-THAN OR EQUAL TO */
#define XK_notequal                    0x08bd  /* U+2260 NOT EQUAL TO */
#define XK_greaterthanequal            0x08be  /* U+2265 GREATER-THAN OR EQUAL TO */
#define XK_integral                    0x08bf  /* U+222B INTEGRAL */
#define XK_therefore                   0x08c0  /* U+2234 THEREFORE */
#define XK_variation                   0x08c1  /* U+221D PROPORTIONAL TO */
#define XK_infinity                    0x08c2  /* U+221E INFINITY */
#define XK_nabla                       0x08c5  /* U+2207 NABLA */
#define XK_approximate                 0x08c8  /* U+223C TILDE OPERATOR */
#define XK_similarequal                0x08c9  /* U+2243 ASYMPTOTICALLY EQUAL TO */
#define XK_ifonlyif                    0x08cd  /* U+21D4 LEFT RIGHT DOUBLE ARROW */
#define XK_implies                     0x08ce  /* U+21D2 RIGHTWARDS DOUBLE ARROW */
#define XK_identical                   0x08cf  /* U+2261 IDENTICAL TO */
#define XK_radical                     0x08d6  /* U+221A SQUARE ROOT */
#define XK_includedin                  0x08da  /* U+2282 SUBSET OF */
#define XK_includes                    0x08db  /* U+2283 SUPERSET OF */
#define XK_intersection                0x08dc  /* U+2229 INTERSECTION */
#define XK_union                       0x08dd  /* U+222A UNION */
#define XK_logicaland                  0x08de  /* U+2227 LOGICAL AND */
#define XK_logicalor                   0x08df  /* U+2228 LOGICAL OR */
#define XK_partialderivative           0x08ef  /* U+2202 PARTIAL DIFFERENTIAL */
#define XK_function                    0x08f6  /* U+0192 LATIN SMALL LETTER F WITH HOOK */
#define XK_leftarrow                   0x08fb  /* U+2190 LEFTWARDS ARROW */
#define XK_uparrow                     0x08fc  /* U+2191 UPWARDS ARROW */
#define XK_rightarrow                  0x08fd  /* U+2192 RIGHTWARDS ARROW */
#define XK_downarrow                   0x08fe  /* U+2193 DOWNWARDS ARROW */
#endif /* XK_TECHNICAL */

/* Special
 * (from the DEC VT100 Special Graphics Character Set)
 * Byte 3 = 9
 */

#ifdef XK_SPECIAL
#define XK_blank                       0x09df
#define XK_soliddiamond                0x09e0  /* U+25C6 BLACK DIAMOND */
#define XK_checkerboard                0x09e1  /* U+2592 MEDIUM SHADE */
#define XK_ht                          0x09e2  /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */
#define XK_ff                          0x09e3  /* U+240C SYMBOL FOR FORM FEED */
#define XK_cr                          0x09e4  /* U+240D SYMBOL FOR CARRIAGE RETURN */
#define XK_lf                          0x09e5  /* U+240A SYMBOL FOR LINE FEED */
#define XK_nl                          0x09e8  /* U+2424 SYMBOL FOR NEWLINE */
#define XK_vt                          0x09e9  /* U+240B SYMBOL FOR VERTICAL TABULATION */
#define XK_lowrightcorner              0x09ea  /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */
#define XK_uprightcorner               0x09eb  /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */
#define XK_upleftcorner                0x09ec  /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */
#define XK_lowleftcorner               0x09ed  /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */
#define XK_crossinglines               0x09ee  /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
#define XK_horizlinescan1              0x09ef  /* U+23BA HORIZONTAL SCAN LINE-1 */
#define XK_horizlinescan3              0x09f0  /* U+23BB HORIZONTAL SCAN LINE-3 */
#define XK_horizlinescan5              0x09f1  /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */
#define XK_horizlinescan7              0x09f2  /* U+23BC HORIZONTAL SCAN LINE-7 */
#define XK_horizlinescan9              0x09f3  /* U+23BD HORIZONTAL SCAN LINE-9 */
#define XK_leftt                       0x09f4  /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
#define XK_rightt                      0x09f5  /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */
#define XK_bott                        0x09f6  /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */
#define XK_topt                        0x09f7  /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
#define XK_vertbar                     0x09f8  /* U+2502 BOX DRAWINGS LIGHT VERTICAL */
#endif /* XK_SPECIAL */

/* Publishing
 * (these are probably from a long forgotten DEC Publishing
 * font that once shipped with DECwrite)
 * Byte 3 = 0x0a
 */

#ifdef XK_PUBLISHING
#define XK_emspace                     0x0aa1  /* U+2003 EM SPACE */
#define XK_enspace                     0x0aa2  /* U+2002 EN SPACE */
#define XK_em3space                    0x0aa3  /* U+2004 THREE-PER-EM SPACE */
#define XK_em4space                    0x0aa4  /* U+2005 FOUR-PER-EM SPACE */
#define XK_digitspace                  0x0aa5  /* U+2007 FIGURE SPACE */
#define XK_punctspace                  0x0aa6  /* U+2008 PUNCTUATION SPACE */
#define XK_thinspace                   0x0aa7  /* U+2009 THIN SPACE */
#define XK_hairspace                   0x0aa8  /* U+200A HAIR SPACE */
#define XK_emdash                      0x0aa9  /* U+2014 EM DASH */
#define XK_endash                      0x0aaa  /* U+2013 EN DASH */
#define XK_signifblank                 0x0aac  /* U+2423 OPEN BOX */
#define XK_ellipsis                    0x0aae  /* U+2026 HORIZONTAL ELLIPSIS */
#define XK_doubbaselinedot             0x0aaf  /* U+2025 TWO DOT LEADER */
#define XK_onethird                    0x0ab0  /* U+2153 VULGAR FRACTION ONE THIRD */
#define XK_twothirds                   0x0ab1  /* U+2154 VULGAR FRACTION TWO THIRDS */
#define XK_onefifth                    0x0ab2  /* U+2155 VULGAR FRACTION ONE FIFTH */
#define XK_twofifths                   0x0ab3  /* U+2156 VULGAR FRACTION TWO FIFTHS */
#define XK_threefifths                 0x0ab4  /* U+2157 VULGAR FRACTION THREE FIFTHS */
#define XK_fourfifths                  0x0ab5  /* U+2158 VULGAR FRACTION FOUR FIFTHS */
#define XK_onesixth                    0x0ab6  /* U+2159 VULGAR FRACTION ONE SIXTH */
#define XK_fivesixths                  0x0ab7  /* U+215A VULGAR FRACTION FIVE SIXTHS */
#define XK_careof                      0x0ab8  /* U+2105 CARE OF */
#define XK_figdash                     0x0abb  /* U+2012 FIGURE DASH */
#define XK_leftanglebracket            0x0abc  /* U+27E8 MATHEMATICAL LEFT ANGLE BRACKET */
#define XK_decimalpoint                0x0abd  /* U+002E FULL STOP)*/
#define XK_rightanglebracket           0x0abe  /* U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET */
#define XK_marker                      0x0abf
#define XK_oneeighth                   0x0ac3  /* U+215B VULGAR FRACTION ONE EIGHTH */
#define XK_threeeighths                0x0ac4  /* U+215C VULGAR FRACTION THREE EIGHTHS */
#define XK_fiveeighths                 0x0ac5  /* U+215D VULGAR FRACTION FIVE EIGHTHS */
#define XK_seveneighths                0x0ac6  /* U+215E VULGAR FRACTION SEVEN EIGHTHS */
#define XK_trademark                   0x0ac9  /* U+2122 TRADE MARK SIGN */
#define XK_signaturemark               0x0aca  /* U+2613 SALTIRE */
#define XK_trademarkincircle           0x0acb
#define XK_leftopentriangle            0x0acc  /* U+25C1 WHITE LEFT-POINTING TRIANGLE */
#define XK_rightopentriangle           0x0acd  /* U+25B7 WHITE RIGHT-POINTING TRIANGLE */
#define XK_emopencircle                0x0ace  /* U+25CB WHITE CIRCLE */
#define XK_emopenrectangle             0x0acf  /* U+25AF WHITE VERTICAL RECTANGLE */
#define XK_leftsinglequotemark         0x0ad0  /* U+2018 LEFT SINGLE QUOTATION MARK */
#define XK_rightsinglequotemark        0x0ad1  /* U+2019 RIGHT SINGLE QUOTATION MARK */
#define XK_leftdoublequotemark         0x0ad2  /* U+201C LEFT DOUBLE QUOTATION MARK */
#define XK_rightdoublequotemark        0x0ad3  /* U+201D RIGHT DOUBLE QUOTATION MARK */
#define XK_prescription                0x0ad4  /* U+211E PRESCRIPTION TAKE */
#define XK_minutes                     0x0ad6  /* U+2032 PRIME */
#define XK_seconds                     0x0ad7  /* U+2033 DOUBLE PRIME */
#define XK_latincross                  0x0ad9  /* U+271D LATIN CROSS */
#define XK_hexagram                    0x0ada
#define XK_filledrectbullet            0x0adb  /* U+25AC BLACK RECTANGLE */
#define XK_filledlefttribullet         0x0adc  /* U+25C0 BLACK LEFT-POINTING TRIANGLE */
#define XK_filledrighttribullet        0x0add  /* U+25B6 BLACK RIGHT-POINTING TRIANGLE */
#define XK_emfilledcircle              0x0ade  /* U+25CF BLACK CIRCLE */
#define XK_emfilledrect                0x0adf  /* U+25AE BLACK VERTICAL RECTANGLE */
#define XK_enopencircbullet            0x0ae0  /* U+25E6 WHITE BULLET */
#define XK_enopensquarebullet          0x0ae1  /* U+25AB WHITE SMALL SQUARE */
#define XK_openrectbullet              0x0ae2  /* U+25AD WHITE RECTANGLE */
#define XK_opentribulletup             0x0ae3  /* U+25B3 WHITE UP-POINTING TRIANGLE */
#define XK_opentribulletdown           0x0ae4  /* U+25BD WHITE DOWN-POINTING TRIANGLE */
#define XK_openstar                    0x0ae5  /* U+2606 WHITE STAR */
#define XK_enfilledcircbullet          0x0ae6  /* U+2022 BULLET */
#define XK_enfilledsqbullet            0x0ae7  /* U+25AA BLACK SMALL SQUARE */
#define XK_filledtribulletup           0x0ae8  /* U+25B2 BLACK UP-POINTING TRIANGLE */
#define XK_filledtribulletdown         0x0ae9  /* U+25BC BLACK DOWN-POINTING TRIANGLE */
#define XK_leftpointer                 0x0aea  /* U+261C WHITE LEFT POINTING INDEX */
#define XK_rightpointer                0x0aeb  /* U+261E WHITE RIGHT POINTING INDEX */
#define XK_club                        0x0aec  /* U+2663 BLACK CLUB SUIT */
#define XK_diamond                     0x0aed  /* U+2666 BLACK DIAMOND SUIT */
#define XK_heart                       0x0aee  /* U+2665 BLACK HEART SUIT */
#define XK_maltesecross                0x0af0  /* U+2720 MALTESE CROSS */
#define XK_dagger                      0x0af1  /* U+2020 DAGGER */
#define XK_doubledagger                0x0af2  /* U+2021 DOUBLE DAGGER */
#define XK_checkmark                   0x0af3  /* U+2713 CHECK MARK */
#define XK_ballotcross                 0x0af4  /* U+2717 BALLOT X */
#define XK_musicalsharp                0x0af5  /* U+266F MUSIC SHARP SIGN */
#define XK_musicalflat                 0x0af6  /* U+266D MUSIC FLAT SIGN */
#define XK_malesymbol                  0x0af7  /* U+2642 MALE SIGN */
#define XK_femalesymbol                0x0af8  /* U+2640 FEMALE SIGN */
#define XK_telephone                   0x0af9  /* U+260E BLACK TELEPHONE */
#define XK_telephonerecorder           0x0afa  /* U+2315 TELEPHONE RECORDER */
#define XK_phonographcopyright         0x0afb  /* U+2117 SOUND RECORDING COPYRIGHT */
#define XK_caret                       0x0afc  /* U+2038 CARET */
#define XK_singlelowquotemark          0x0afd  /* U+201A SINGLE LOW-9 QUOTATION MARK */
#define XK_doublelowquotemark          0x0afe  /* U+201E DOUBLE LOW-9 QUOTATION MARK */
#define XK_cursor                      0x0aff
#endif /* XK_PUBLISHING */

/* APL
 * Byte 3 = 0x0b
 */

#ifdef XK_APL
#define XK_leftcaret                   0x0ba3  /* U+003C LESS-THAN SIGN */
#define XK_rightcaret                  0x0ba6  /* U+003E GREATER-THAN SIGN */
#define XK_downcaret                   0x0ba8  /* U+2228 LOGICAL OR */
#define XK_upcaret                     0x0ba9  /* U+2227 LOGICAL AND */
#define XK_overbar                     0x0bc0  /* U+00AF MACRON */
#define XK_downtack                    0x0bc2  /* U+22A5 UP TACK */
#define XK_upshoe                      0x0bc3  /* U+2229 INTERSECTION */
#define XK_downstile                   0x0bc4  /* U+230A LEFT FLOOR */
#define XK_underbar                    0x0bc6  /* U+005F LOW LINE */
#define XK_jot                         0x0bca  /* U+2218 RING OPERATOR */
#define XK_quad                        0x0bcc  /* U+2395 APL FUNCTIONAL SYMBOL QUAD */
#define XK_uptack                      0x0bce  /* U+22A4 DOWN TACK */
#define XK_circle                      0x0bcf  /* U+25CB WHITE CIRCLE */
#define XK_upstile                     0x0bd3  /* U+2308 LEFT CEILING */
#define XK_downshoe                    0x0bd6  /* U+222A UNION */
#define XK_rightshoe                   0x0bd8  /* U+2283 SUPERSET OF */
#define XK_leftshoe                    0x0bda  /* U+2282 SUBSET OF */
#define XK_lefttack                    0x0bdc  /* U+22A2 RIGHT TACK */
#define XK_righttack                   0x0bfc  /* U+22A3 LEFT TACK */
#endif /* XK_APL */

/* Hebrew
 * Byte 3 = 0x0c
 */

#ifdef XK_HEBREW
#define XK_hebrew_doublelowline        0x0cdf  /* U+2017 DOUBLE LOW LINE */
#define XK_hebrew_aleph                0x0ce0  /* U+05D0 HEBREW LETTER ALEF */
#define XK_hebrew_bet                  0x0ce1  /* U+05D1 HEBREW LETTER BET */
#define XK_hebrew_beth                 0x0ce1  /* deprecated */
#define XK_hebrew_gimel                0x0ce2  /* U+05D2 HEBREW LETTER GIMEL */
#define XK_hebrew_gimmel               0x0ce2  /* deprecated */
#define XK_hebrew_dalet                0x0ce3  /* U+05D3 HEBREW LETTER DALET */
#define XK_hebrew_daleth               0x0ce3  /* deprecated */
#define XK_hebrew_he                   0x0ce4  /* U+05D4 HEBREW LETTER HE */
#define XK_hebrew_waw                  0x0ce5  /* U+05D5 HEBREW LETTER VAV */
#define XK_hebrew_zain                 0x0ce6  /* U+05D6 HEBREW LETTER ZAYIN */
#define XK_hebrew_zayin                0x0ce6  /* deprecated */
#define XK_hebrew_chet                 0x0ce7  /* U+05D7 HEBREW LETTER HET */
#define XK_hebrew_het                  0x0ce7  /* deprecated */
#define XK_hebrew_tet                  0x0ce8  /* U+05D8 HEBREW LETTER TET */
#define XK_hebrew_teth                 0x0ce8  /* deprecated */
#define XK_hebrew_yod                  0x0ce9  /* U+05D9 HEBREW LETTER YOD */
#define XK_hebrew_finalkaph            0x0cea  /* U+05DA HEBREW LETTER FINAL KAF */
#define XK_hebrew_kaph                 0x0ceb  /* U+05DB HEBREW LETTER KAF */
#define XK_hebrew_lamed                0x0cec  /* U+05DC HEBREW LETTER LAMED */
#define XK_hebrew_finalmem             0x0ced  /* U+05DD HEBREW LETTER FINAL MEM */
#define XK_hebrew_mem                  0x0cee  /* U+05DE HEBREW LETTER MEM */
#define XK_hebrew_finalnun             0x0cef  /* U+05DF HEBREW LETTER FINAL NUN */
#define XK_hebrew_nun                  0x0cf0  /* U+05E0 HEBREW LETTER NUN */
#define XK_hebrew_samech               0x0cf1  /* U+05E1 HEBREW LETTER SAMEKH */
#define XK_hebrew_samekh               0x0cf1  /* deprecated */
#define XK_hebrew_ayin                 0x0cf2  /* U+05E2 HEBREW LETTER AYIN */
#define XK_hebrew_finalpe              0x0cf3  /* U+05E3 HEBREW LETTER FINAL PE */
#define XK_hebrew_pe                   0x0cf4  /* U+05E4 HEBREW LETTER PE */
#define XK_hebrew_finalzade            0x0cf5  /* U+05E5 HEBREW LETTER FINAL TSADI */
#define XK_hebrew_finalzadi            0x0cf5  /* deprecated */
#define XK_hebrew_zade                 0x0cf6  /* U+05E6 HEBREW LETTER TSADI */
#define XK_hebrew_zadi                 0x0cf6  /* deprecated */
#define XK_hebrew_qoph                 0x0cf7  /* U+05E7 HEBREW LETTER QOF */
#define XK_hebrew_kuf                  0x0cf7  /* deprecated */
#define XK_hebrew_resh                 0x0cf8  /* U+05E8 HEBREW LETTER RESH */
#define XK_hebrew_shin                 0x0cf9  /* U+05E9 HEBREW LETTER SHIN */
#define XK_hebrew_taw                  0x0cfa  /* U+05EA HEBREW LETTER TAV */
#define XK_hebrew_taf                  0x0cfa  /* deprecated */
#define XK_Hebrew_switch               0xff7e  /* Alias for mode_switch */
#endif /* XK_HEBREW */

/* Thai
 * Byte 3 = 0x0d
 */

#ifdef XK_THAI
#define XK_Thai_kokai                  0x0da1  /* U+0E01 THAI CHARACTER KO KAI */
#define XK_Thai_khokhai                0x0da2  /* U+0E02 THAI CHARACTER KHO KHAI */
#define XK_Thai_khokhuat               0x0da3  /* U+0E03 THAI CHARACTER KHO KHUAT */
#define XK_Thai_khokhwai               0x0da4  /* U+0E04 THAI CHARACTER KHO KHWAI */
#define XK_Thai_khokhon                0x0da5  /* U+0E05 THAI CHARACTER KHO KHON */
#define XK_Thai_khorakhang             0x0da6  /* U+0E06 THAI CHARACTER KHO RAKHANG */
#define XK_Thai_ngongu                 0x0da7  /* U+0E07 THAI CHARACTER NGO NGU */
#define XK_Thai_chochan                0x0da8  /* U+0E08 THAI CHARACTER CHO CHAN */
#define XK_Thai_choching               0x0da9  /* U+0E09 THAI CHARACTER CHO CHING */
#define XK_Thai_chochang               0x0daa  /* U+0E0A THAI CHARACTER CHO CHANG */
#define XK_Thai_soso                   0x0dab  /* U+0E0B THAI CHARACTER SO SO */
#define XK_Thai_chochoe                0x0dac  /* U+0E0C THAI CHARACTER CHO CHOE */
#define XK_Thai_yoying                 0x0dad  /* U+0E0D THAI CHARACTER YO YING */
#define XK_Thai_dochada                0x0dae  /* U+0E0E THAI CHARACTER DO CHADA */
#define XK_Thai_topatak                0x0daf  /* U+0E0F THAI CHARACTER TO PATAK */
#define XK_Thai_thothan                0x0db0  /* U+0E10 THAI CHARACTER THO THAN */
#define XK_Thai_thonangmontho          0x0db1  /* U+0E11 THAI CHARACTER THO NANGMONTHO */
#define XK_Thai_thophuthao             0x0db2  /* U+0E12 THAI CHARACTER THO PHUTHAO */
#define XK_Thai_nonen                  0x0db3  /* U+0E13 THAI CHARACTER NO NEN */
#define XK_Thai_dodek                  0x0db4  /* U+0E14 THAI CHARACTER DO DEK */
#define XK_Thai_totao                  0x0db5  /* U+0E15 THAI CHARACTER TO TAO */
#define XK_Thai_thothung               0x0db6  /* U+0E16 THAI CHARACTER THO THUNG */
#define XK_Thai_thothahan              0x0db7  /* U+0E17 THAI CHARACTER THO THAHAN */
#define XK_Thai_thothong               0x0db8  /* U+0E18 THAI CHARACTER THO THONG */
#define XK_Thai_nonu                   0x0db9  /* U+0E19 THAI CHARACTER NO NU */
#define XK_Thai_bobaimai               0x0dba  /* U+0E1A THAI CHARACTER BO BAIMAI */
#define XK_Thai_popla                  0x0dbb  /* U+0E1B THAI CHARACTER PO PLA */
#define XK_Thai_phophung               0x0dbc  /* U+0E1C THAI CHARACTER PHO PHUNG */
#define XK_Thai_fofa                   0x0dbd  /* U+0E1D THAI CHARACTER FO FA */
#define XK_Thai_phophan                0x0dbe  /* U+0E1E THAI CHARACTER PHO PHAN */
#define XK_Thai_fofan                  0x0dbf  /* U+0E1F THAI CHARACTER FO FAN */
#define XK_Thai_phosamphao             0x0dc0  /* U+0E20 THAI CHARACTER PHO SAMPHAO */
#define XK_Thai_moma                   0x0dc1  /* U+0E21 THAI CHARACTER MO MA */
#define XK_Thai_yoyak                  0x0dc2  /* U+0E22 THAI CHARACTER YO YAK */
#define XK_Thai_rorua                  0x0dc3  /* U+0E23 THAI CHARACTER RO RUA */
#define XK_Thai_ru                     0x0dc4  /* U+0E24 THAI CHARACTER RU */
#define XK_Thai_loling                 0x0dc5  /* U+0E25 THAI CHARACTER LO LING */
#define XK_Thai_lu                     0x0dc6  /* U+0E26 THAI CHARACTER LU */
#define XK_Thai_wowaen                 0x0dc7  /* U+0E27 THAI CHARACTER WO WAEN */
#define XK_Thai_sosala                 0x0dc8  /* U+0E28 THAI CHARACTER SO SALA */
#define XK_Thai_sorusi                 0x0dc9  /* U+0E29 THAI CHARACTER SO RUSI */
#define XK_Thai_sosua                  0x0dca  /* U+0E2A THAI CHARACTER SO SUA */
#define XK_Thai_hohip                  0x0dcb  /* U+0E2B THAI CHARACTER HO HIP */
#define XK_Thai_lochula                0x0dcc  /* U+0E2C THAI CHARACTER LO CHULA */
#define XK_Thai_oang                   0x0dcd  /* U+0E2D THAI CHARACTER O ANG */
#define XK_Thai_honokhuk               0x0dce  /* U+0E2E THAI CHARACTER HO NOKHUK */
#define XK_Thai_paiyannoi              0x0dcf  /* U+0E2F THAI CHARACTER PAIYANNOI */
#define XK_Thai_saraa                  0x0dd0  /* U+0E30 THAI CHARACTER SARA A */
#define XK_Thai_maihanakat             0x0dd1  /* U+0E31 THAI CHARACTER MAI HAN-AKAT */
#define XK_Thai_saraaa                 0x0dd2  /* U+0E32 THAI CHARACTER SARA AA */
#define XK_Thai_saraam                 0x0dd3  /* U+0E33 THAI CHARACTER SARA AM */
#define XK_Thai_sarai                  0x0dd4  /* U+0E34 THAI CHARACTER SARA I */
#define XK_Thai_saraii                 0x0dd5  /* U+0E35 THAI CHARACTER SARA II */
#define XK_Thai_saraue                 0x0dd6  /* U+0E36 THAI CHARACTER SARA UE */
#define XK_Thai_sarauee                0x0dd7  /* U+0E37 THAI CHARACTER SARA UEE */
#define XK_Thai_sarau                  0x0dd8  /* U+0E38 THAI CHARACTER SARA U */
#define XK_Thai_sarauu                 0x0dd9  /* U+0E39 THAI CHARACTER SARA UU */
#define XK_Thai_phinthu                0x0dda  /* U+0E3A THAI CHARACTER PHINTHU */
#define XK_Thai_maihanakat_maitho      0x0dde
#define XK_Thai_baht                   0x0ddf  /* U+0E3F THAI CURRENCY SYMBOL BAHT */
#define XK_Thai_sarae                  0x0de0  /* U+0E40 THAI CHARACTER SARA E */
#define XK_Thai_saraae                 0x0de1  /* U+0E41 THAI CHARACTER SARA AE */
#define XK_Thai_sarao                  0x0de2  /* U+0E42 THAI CHARACTER SARA O */
#define XK_Thai_saraaimaimuan          0x0de3  /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */
#define XK_Thai_saraaimaimalai         0x0de4  /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */
#define XK_Thai_lakkhangyao            0x0de5  /* U+0E45 THAI CHARACTER LAKKHANGYAO */
#define XK_Thai_maiyamok               0x0de6  /* U+0E46 THAI CHARACTER MAIYAMOK */
#define XK_Thai_maitaikhu              0x0de7  /* U+0E47 THAI CHARACTER MAITAIKHU */
#define XK_Thai_maiek                  0x0de8  /* U+0E48 THAI CHARACTER MAI EK */
#define XK_Thai_maitho                 0x0de9  /* U+0E49 THAI CHARACTER MAI THO */
#define XK_Thai_maitri                 0x0dea  /* U+0E4A THAI CHARACTER MAI TRI */
#define XK_Thai_maichattawa            0x0deb  /* U+0E4B THAI CHARACTER MAI CHATTAWA */
#define XK_Thai_thanthakhat            0x0dec  /* U+0E4C THAI CHARACTER THANTHAKHAT */
#define XK_Thai_nikhahit               0x0ded  /* U+0E4D THAI CHARACTER NIKHAHIT */
#define XK_Thai_leksun                 0x0df0  /* U+0E50 THAI DIGIT ZERO */
#define XK_Thai_leknung                0x0df1  /* U+0E51 THAI DIGIT ONE */
#define XK_Thai_leksong                0x0df2  /* U+0E52 THAI DIGIT TWO */
#define XK_Thai_leksam                 0x0df3  /* U+0E53 THAI DIGIT THREE */
#define XK_Thai_leksi                  0x0df4  /* U+0E54 THAI DIGIT FOUR */
#define XK_Thai_lekha                  0x0df5  /* U+0E55 THAI DIGIT FIVE */
#define XK_Thai_lekhok                 0x0df6  /* U+0E56 THAI DIGIT SIX */
#define XK_Thai_lekchet                0x0df7  /* U+0E57 THAI DIGIT SEVEN */
#define XK_Thai_lekpaet                0x0df8  /* U+0E58 THAI DIGIT EIGHT */
#define XK_Thai_lekkao                 0x0df9  /* U+0E59 THAI DIGIT NINE */
#endif /* XK_THAI */

/* Korean
 * Byte 3 = 0x0e
 */

#ifdef XK_KOREAN

#define XK_Hangul                      0xff31  /* Hangul start/stop(toggle) */
#define XK_Hangul_Start                0xff32  /* Hangul start */
#define XK_Hangul_End                  0xff33  /* Hangul end, English start */
#define XK_Hangul_Hanja                0xff34  /* Start Hangul->Hanja Conversion */
#define XK_Hangul_Jamo                 0xff35  /* Hangul Jamo mode */
#define XK_Hangul_Romaja               0xff36  /* Hangul Romaja mode */
#define XK_Hangul_Codeinput            0xff37  /* Hangul code input mode */
#define XK_Hangul_Jeonja               0xff38  /* Jeonja mode */
#define XK_Hangul_Banja                0xff39  /* Banja mode */
#define XK_Hangul_PreHanja             0xff3a  /* Pre Hanja conversion */
#define XK_Hangul_PostHanja            0xff3b  /* Post Hanja conversion */
#define XK_Hangul_SingleCandidate      0xff3c  /* Single candidate */
#define XK_Hangul_MultipleCandidate    0xff3d  /* Multiple candidate */
#define XK_Hangul_PreviousCandidate    0xff3e  /* Previous candidate */
#define XK_Hangul_Special              0xff3f  /* Special symbols */
#define XK_Hangul_switch               0xff7e  /* Alias for mode_switch */

/* Hangul Consonant Characters */

#define XK_Hangul_Kiyeog               0x0ea1
#define XK_Hangul_SsangKiyeog          0x0ea2
#define XK_Hangul_KiyeogSios           0x0ea3
#define XK_Hangul_Nieun                0x0ea4
#define XK_Hangul_NieunJieuj           0x0ea5
#define XK_Hangul_NieunHieuh           0x0ea6
#define XK_Hangul_Dikeud               0x0ea7
#define XK_Hangul_SsangDikeud          0x0ea8
#define XK_Hangul_Rieul                0x0ea9
#define XK_Hangul_RieulKiyeog          0x0eaa
#define XK_Hangul_RieulMieum           0x0eab
#define XK_Hangul_RieulPieub           0x0eac
#define XK_Hangul_RieulSios            0x0ead
#define XK_Hangul_RieulTieut           0x0eae
#define XK_Hangul_RieulPhieuf          0x0eaf
#define XK_Hangul_RieulHieuh           0x0eb0
#define XK_Hangul_Mieum                0x0eb1
#define XK_Hangul_Pieub                0x0eb2
#define XK_Hangul_SsangPieub           0x0eb3
#define XK_Hangul_PieubSios            0x0eb4
#define XK_Hangul_Sios                 0x0eb5
#define XK_Hangul_SsangSios            0x0eb6
#define XK_Hangul_Ieung                0x0eb7
#define XK_Hangul_Jieuj                0x0eb8
#define XK_Hangul_SsangJieuj           0x0eb9
#define XK_Hangul_Cieuc                0x0eba
#define XK_Hangul_Khieuq               0x0ebb
#define XK_Hangul_Tieut                0x0ebc
#define XK_Hangul_Phieuf               0x0ebd
#define XK_Hangul_Hieuh                0x0ebe

/* Hangul Vowel Characters */

#define XK_Hangul_A                    0x0ebf
#define XK_Hangul_AE                   0x0ec0
#define XK_Hangul_YA                   0x0ec1
#define XK_Hangul_YAE                  0x0ec2
#define XK_Hangul_EO                   0x0ec3
#define XK_Hangul_E                    0x0ec4
#define XK_Hangul_YEO                  0x0ec5
#define XK_Hangul_YE                   0x0ec6
#define XK_Hangul_O                    0x0ec7
#define XK_Hangul_WA                   0x0ec8
#define XK_Hangul_WAE                  0x0ec9
#define XK_Hangul_OE                   0x0eca
#define XK_Hangul_YO                   0x0ecb
#define XK_Hangul_U                    0x0ecc
#define XK_Hangul_WEO                  0x0ecd
#define XK_Hangul_WE                   0x0ece
#define XK_Hangul_WI                   0x0ecf
#define XK_Hangul_YU                   0x0ed0
#define XK_Hangul_EU                   0x0ed1
#define XK_Hangul_YI                   0x0ed2
#define XK_Hangul_I                    0x0ed3

/* Hangul syllable-final (JongSeong) Characters */

#define XK_Hangul_J_Kiyeog             0x0ed4
#define XK_Hangul_J_SsangKiyeog        0x0ed5
#define XK_Hangul_J_KiyeogSios         0x0ed6
#define XK_Hangul_J_Nieun              0x0ed7
#define XK_Hangul_J_NieunJieuj         0x0ed8
#define XK_Hangul_J_NieunHieuh         0x0ed9
#define XK_Hangul_J_Dikeud             0x0eda
#define XK_Hangul_J_Rieul              0x0edb
#define XK_Hangul_J_RieulKiyeog        0x0edc
#define XK_Hangul_J_RieulMieum         0x0edd
#define XK_Hangul_J_RieulPieub         0x0ede
#define XK_Hangul_J_RieulSios          0x0edf
#define XK_Hangul_J_RieulTieut         0x0ee0
#define XK_Hangul_J_RieulPhieuf        0x0ee1
#define XK_Hangul_J_RieulHieuh         0x0ee2
#define XK_Hangul_J_Mieum              0x0ee3
#define XK_Hangul_J_Pieub              0x0ee4
#define XK_Hangul_J_PieubSios          0x0ee5
#define XK_Hangul_J_Sios               0x0ee6
#define XK_Hangul_J_SsangSios          0x0ee7
#define XK_Hangul_J_Ieung              0x0ee8
#define XK_Hangul_J_Jieuj              0x0ee9
#define XK_Hangul_J_Cieuc              0x0eea
#define XK_Hangul_J_Khieuq             0x0eeb
#define XK_Hangul_J_Tieut              0x0eec
#define XK_Hangul_J_Phieuf             0x0eed
#define XK_Hangul_J_Hieuh              0x0eee

/* Ancient Hangul Consonant Characters */

#define XK_Hangul_RieulYeorinHieuh     0x0eef
#define XK_Hangul_SunkyeongeumMieum    0x0ef0
#define XK_Hangul_SunkyeongeumPieub    0x0ef1
#define XK_Hangul_PanSios              0x0ef2
#define XK_Hangul_KkogjiDalrinIeung    0x0ef3
#define XK_Hangul_SunkyeongeumPhieuf   0x0ef4
#define XK_Hangul_YeorinHieuh          0x0ef5

/* Ancient Hangul Vowel Characters */

#define XK_Hangul_AraeA                0x0ef6
#define XK_Hangul_AraeAE               0x0ef7

/* Ancient Hangul syllable-final (JongSeong) Characters */

#define XK_Hangul_J_PanSios            0x0ef8
#define XK_Hangul_J_KkogjiDalrinIeung  0x0ef9
#define XK_Hangul_J_YeorinHieuh        0x0efa

/* Korean currency symbol */

#define XK_Korean_Won                  0x0eff  /* U+20A9 WON SIGN */

#endif /* XK_KOREAN */

/* Armenian */

#ifdef XK_ARMENIAN
#define XK_Armenian_ligature_ew     0x1000587  /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
#define XK_Armenian_full_stop       0x1000589  /* U+0589 ARMENIAN FULL STOP */
#define XK_Armenian_verjaket        0x1000589  /* U+0589 ARMENIAN FULL STOP */
#define XK_Armenian_separation_mark 0x100055d  /* U+055D ARMENIAN COMMA */
#define XK_Armenian_but             0x100055d  /* U+055D ARMENIAN COMMA */
#define XK_Armenian_hyphen          0x100058a  /* U+058A ARMENIAN HYPHEN */
#define XK_Armenian_yentamna        0x100058a  /* U+058A ARMENIAN HYPHEN */
#define XK_Armenian_exclam          0x100055c  /* U+055C ARMENIAN EXCLAMATION MARK */
#define XK_Armenian_amanak          0x100055c  /* U+055C ARMENIAN EXCLAMATION MARK */
#define XK_Armenian_accent          0x100055b  /* U+055B ARMENIAN EMPHASIS MARK */
#define XK_Armenian_shesht          0x100055b  /* U+055B ARMENIAN EMPHASIS MARK */
#define XK_Armenian_question        0x100055e  /* U+055E ARMENIAN QUESTION MARK */
#define XK_Armenian_paruyk          0x100055e  /* U+055E ARMENIAN QUESTION MARK */
#define XK_Armenian_AYB             0x1000531  /* U+0531 ARMENIAN CAPITAL LETTER AYB */
#define XK_Armenian_ayb             0x1000561  /* U+0561 ARMENIAN SMALL LETTER AYB */
#define XK_Armenian_BEN             0x1000532  /* U+0532 ARMENIAN CAPITAL LETTER BEN */
#define XK_Armenian_ben             0x1000562  /* U+0562 ARMENIAN SMALL LETTER BEN */
#define XK_Armenian_GIM             0x1000533  /* U+0533 ARMENIAN CAPITAL LETTER GIM */
#define XK_Armenian_gim             0x1000563  /* U+0563 ARMENIAN SMALL LETTER GIM */
#define XK_Armenian_DA              0x1000534  /* U+0534 ARMENIAN CAPITAL LETTER DA */
#define XK_Armenian_da              0x1000564  /* U+0564 ARMENIAN SMALL LETTER DA */
#define XK_Armenian_YECH            0x1000535  /* U+0535 ARMENIAN CAPITAL LETTER ECH */
#define XK_Armenian_yech            0x1000565  /* U+0565 ARMENIAN SMALL LETTER ECH */
#define XK_Armenian_ZA              0x1000536  /* U+0536 ARMENIAN CAPITAL LETTER ZA */
#define XK_Armenian_za              0x1000566  /* U+0566 ARMENIAN SMALL LETTER ZA */
#define XK_Armenian_E               0x1000537  /* U+0537 ARMENIAN CAPITAL LETTER EH */
#define XK_Armenian_e               0x1000567  /* U+0567 ARMENIAN SMALL LETTER EH */
#define XK_Armenian_AT              0x1000538  /* U+0538 ARMENIAN CAPITAL LETTER ET */
#define XK_Armenian_at              0x1000568  /* U+0568 ARMENIAN SMALL LETTER ET */
#define XK_Armenian_TO              0x1000539  /* U+0539 ARMENIAN CAPITAL LETTER TO */
#define XK_Armenian_to              0x1000569  /* U+0569 ARMENIAN SMALL LETTER TO */
#define XK_Armenian_ZHE             0x100053a  /* U+053A ARMENIAN CAPITAL LETTER ZHE */
#define XK_Armenian_zhe             0x100056a  /* U+056A ARMENIAN SMALL LETTER ZHE */
#define XK_Armenian_INI             0x100053b  /* U+053B ARMENIAN CAPITAL LETTER INI */
#define XK_Armenian_ini             0x100056b  /* U+056B ARMENIAN SMALL LETTER INI */
#define XK_Armenian_LYUN            0x100053c  /* U+053C ARMENIAN CAPITAL LETTER LIWN */
#define XK_Armenian_lyun            0x100056c  /* U+056C ARMENIAN SMALL LETTER LIWN */
#define XK_Armenian_KHE             0x100053d  /* U+053D ARMENIAN CAPITAL LETTER XEH */
#define XK_Armenian_khe             0x100056d  /* U+056D ARMENIAN SMALL LETTER XEH */
#define XK_Armenian_TSA             0x100053e  /* U+053E ARMENIAN CAPITAL LETTER CA */
#define XK_Armenian_tsa             0x100056e  /* U+056E ARMENIAN SMALL LETTER CA */
#define XK_Armenian_KEN             0x100053f  /* U+053F ARMENIAN CAPITAL LETTER KEN */
#define XK_Armenian_ken             0x100056f  /* U+056F ARMENIAN SMALL LETTER KEN */
#define XK_Armenian_HO              0x1000540  /* U+0540 ARMENIAN CAPITAL LETTER HO */
#define XK_Armenian_ho              0x1000570  /* U+0570 ARMENIAN SMALL LETTER HO */
#define XK_Armenian_DZA             0x1000541  /* U+0541 ARMENIAN CAPITAL LETTER JA */
#define XK_Armenian_dza             0x1000571  /* U+0571 ARMENIAN SMALL LETTER JA */
#define XK_Armenian_GHAT            0x1000542  /* U+0542 ARMENIAN CAPITAL LETTER GHAD */
#define XK_Armenian_ghat            0x1000572  /* U+0572 ARMENIAN SMALL LETTER GHAD */
#define XK_Armenian_TCHE            0x1000543  /* U+0543 ARMENIAN CAPITAL LETTER CHEH */
#define XK_Armenian_tche            0x1000573  /* U+0573 ARMENIAN SMALL LETTER CHEH */
#define XK_Armenian_MEN             0x1000544  /* U+0544 ARMENIAN CAPITAL LETTER MEN */
#define XK_Armenian_men             0x1000574  /* U+0574 ARMENIAN SMALL LETTER MEN */
#define XK_Armenian_HI              0x1000545  /* U+0545 ARMENIAN CAPITAL LETTER YI */
#define XK_Armenian_hi              0x1000575  /* U+0575 ARMENIAN SMALL LETTER YI */
#define XK_Armenian_NU              0x1000546  /* U+0546 ARMENIAN CAPITAL LETTER NOW */
#define XK_Armenian_nu              0x1000576  /* U+0576 ARMENIAN SMALL LETTER NOW */
#define XK_Armenian_SHA             0x1000547  /* U+0547 ARMENIAN CAPITAL LETTER SHA */
#define XK_Armenian_sha             0x1000577  /* U+0577 ARMENIAN SMALL LETTER SHA */
#define XK_Armenian_VO              0x1000548  /* U+0548 ARMENIAN CAPITAL LETTER VO */
#define XK_Armenian_vo              0x1000578  /* U+0578 ARMENIAN SMALL LETTER VO */
#define XK_Armenian_CHA             0x1000549  /* U+0549 ARMENIAN CAPITAL LETTER CHA */
#define XK_Armenian_cha             0x1000579  /* U+0579 ARMENIAN SMALL LETTER CHA */
#define XK_Armenian_PE              0x100054a  /* U+054A ARMENIAN CAPITAL LETTER PEH */
#define XK_Armenian_pe              0x100057a  /* U+057A ARMENIAN SMALL LETTER PEH */
#define XK_Armenian_JE              0x100054b  /* U+054B ARMENIAN CAPITAL LETTER JHEH */
#define XK_Armenian_je              0x100057b  /* U+057B ARMENIAN SMALL LETTER JHEH */
#define XK_Armenian_RA              0x100054c  /* U+054C ARMENIAN CAPITAL LETTER RA */
#define XK_Armenian_ra              0x100057c  /* U+057C ARMENIAN SMALL LETTER RA */
#define XK_Armenian_SE              0x100054d  /* U+054D ARMENIAN CAPITAL LETTER SEH */
#define XK_Armenian_se              0x100057d  /* U+057D ARMENIAN SMALL LETTER SEH */
#define XK_Armenian_VEV             0x100054e  /* U+054E ARMENIAN CAPITAL LETTER VEW */
#define XK_Armenian_vev             0x100057e  /* U+057E ARMENIAN SMALL LETTER VEW */
#define XK_Armenian_TYUN            0x100054f  /* U+054F ARMENIAN CAPITAL LETTER TIWN */
#define XK_Armenian_tyun            0x100057f  /* U+057F ARMENIAN SMALL LETTER TIWN */
#define XK_Armenian_RE              0x1000550  /* U+0550 ARMENIAN CAPITAL LETTER REH */
#define XK_Armenian_re              0x1000580  /* U+0580 ARMENIAN SMALL LETTER REH */
#define XK_Armenian_TSO             0x1000551  /* U+0551 ARMENIAN CAPITAL LETTER CO */
#define XK_Armenian_tso             0x1000581  /* U+0581 ARMENIAN SMALL LETTER CO */
#define XK_Armenian_VYUN            0x1000552  /* U+0552 ARMENIAN CAPITAL LETTER YIWN */
#define XK_Armenian_vyun            0x1000582  /* U+0582 ARMENIAN SMALL LETTER YIWN */
#define XK_Armenian_PYUR            0x1000553  /* U+0553 ARMENIAN CAPITAL LETTER PIWR */
#define XK_Armenian_pyur            0x1000583  /* U+0583 ARMENIAN SMALL LETTER PIWR */
#define XK_Armenian_KE              0x1000554  /* U+0554 ARMENIAN CAPITAL LETTER KEH */
#define XK_Armenian_ke              0x1000584  /* U+0584 ARMENIAN SMALL LETTER KEH */
#define XK_Armenian_O               0x1000555  /* U+0555 ARMENIAN CAPITAL LETTER OH */
#define XK_Armenian_o               0x1000585  /* U+0585 ARMENIAN SMALL LETTER OH */
#define XK_Armenian_FE              0x1000556  /* U+0556 ARMENIAN CAPITAL LETTER FEH */
#define XK_Armenian_fe              0x1000586  /* U+0586 ARMENIAN SMALL LETTER FEH */
#define XK_Armenian_apostrophe      0x100055a  /* U+055A ARMENIAN APOSTROPHE */
#endif /* XK_ARMENIAN */

/* Georgian */

#ifdef XK_GEORGIAN
#define XK_Georgian_an              0x10010d0  /* U+10D0 GEORGIAN LETTER AN */
#define XK_Georgian_ban             0x10010d1  /* U+10D1 GEORGIAN LETTER BAN */
#define XK_Georgian_gan             0x10010d2  /* U+10D2 GEORGIAN LETTER GAN */
#define XK_Georgian_don             0x10010d3  /* U+10D3 GEORGIAN LETTER DON */
#define XK_Georgian_en              0x10010d4  /* U+10D4 GEORGIAN LETTER EN */
#define XK_Georgian_vin             0x10010d5  /* U+10D5 GEORGIAN LETTER VIN */
#define XK_Georgian_zen             0x10010d6  /* U+10D6 GEORGIAN LETTER ZEN */
#define XK_Georgian_tan             0x10010d7  /* U+10D7 GEORGIAN LETTER TAN */
#define XK_Georgian_in              0x10010d8  /* U+10D8 GEORGIAN LETTER IN */
#define XK_Georgian_kan             0x10010d9  /* U+10D9 GEORGIAN LETTER KAN */
#define XK_Georgian_las             0x10010da  /* U+10DA GEORGIAN LETTER LAS */
#define XK_Georgian_man             0x10010db  /* U+10DB GEORGIAN LETTER MAN */
#define XK_Georgian_nar             0x10010dc  /* U+10DC GEORGIAN LETTER NAR */
#define XK_Georgian_on              0x10010dd  /* U+10DD GEORGIAN LETTER ON */
#define XK_Georgian_par             0x10010de  /* U+10DE GEORGIAN LETTER PAR */
#define XK_Georgian_zhar            0x10010df  /* U+10DF GEORGIAN LETTER ZHAR */
#define XK_Georgian_rae             0x10010e0  /* U+10E0 GEORGIAN LETTER RAE */
#define XK_Georgian_san             0x10010e1  /* U+10E1 GEORGIAN LETTER SAN */
#define XK_Georgian_tar             0x10010e2  /* U+10E2 GEORGIAN LETTER TAR */
#define XK_Georgian_un              0x10010e3  /* U+10E3 GEORGIAN LETTER UN */
#define XK_Georgian_phar            0x10010e4  /* U+10E4 GEORGIAN LETTER PHAR */
#define XK_Georgian_khar            0x10010e5  /* U+10E5 GEORGIAN LETTER KHAR */
#define XK_Georgian_ghan            0x10010e6  /* U+10E6 GEORGIAN LETTER GHAN */
#define XK_Georgian_qar             0x10010e7  /* U+10E7 GEORGIAN LETTER QAR */
#define XK_Georgian_shin            0x10010e8  /* U+10E8 GEORGIAN LETTER SHIN */
#define XK_Georgian_chin            0x10010e9  /* U+10E9 GEORGIAN LETTER CHIN */
#define XK_Georgian_can             0x10010ea  /* U+10EA GEORGIAN LETTER CAN */
#define XK_Georgian_jil             0x10010eb  /* U+10EB GEORGIAN LETTER JIL */
#define XK_Georgian_cil             0x10010ec  /* U+10EC GEORGIAN LETTER CIL */
#define XK_Georgian_char            0x10010ed  /* U+10ED GEORGIAN LETTER CHAR */
#define XK_Georgian_xan             0x10010ee  /* U+10EE GEORGIAN LETTER XAN */
#define XK_Georgian_jhan            0x10010ef  /* U+10EF GEORGIAN LETTER JHAN */
#define XK_Georgian_hae             0x10010f0  /* U+10F0 GEORGIAN LETTER HAE */
#define XK_Georgian_he              0x10010f1  /* U+10F1 GEORGIAN LETTER HE */
#define XK_Georgian_hie             0x10010f2  /* U+10F2 GEORGIAN LETTER HIE */
#define XK_Georgian_we              0x10010f3  /* U+10F3 GEORGIAN LETTER WE */
#define XK_Georgian_har             0x10010f4  /* U+10F4 GEORGIAN LETTER HAR */
#define XK_Georgian_hoe             0x10010f5  /* U+10F5 GEORGIAN LETTER HOE */
#define XK_Georgian_fi              0x10010f6  /* U+10F6 GEORGIAN LETTER FI */
#endif /* XK_GEORGIAN */

/* Azeri (and other Turkic or Caucasian languages) */

#ifdef XK_CAUCASUS
/* latin */

#define XK_Xabovedot                0x1001e8a  /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */
#define XK_Ibreve                   0x100012c  /* U+012C LATIN CAPITAL LETTER I WITH BREVE */
#define XK_Zstroke                  0x10001b5  /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */
#define XK_Gcaron                   0x10001e6  /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */
#define XK_Ocaron                   0x10001d1  /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */
#define XK_Obarred                  0x100019f  /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
#define XK_xabovedot                0x1001e8b  /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */
#define XK_ibreve                   0x100012d  /* U+012D LATIN SMALL LETTER I WITH BREVE */
#define XK_zstroke                  0x10001b6  /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */
#define XK_gcaron                   0x10001e7  /* U+01E7 LATIN SMALL LETTER G WITH CARON */
#define XK_ocaron                   0x10001d2  /* U+01D2 LATIN SMALL LETTER O WITH CARON */
#define XK_obarred                  0x1000275  /* U+0275 LATIN SMALL LETTER BARRED O */
#define XK_SCHWA                    0x100018f  /* U+018F LATIN CAPITAL LETTER SCHWA */
#define XK_schwa                    0x1000259  /* U+0259 LATIN SMALL LETTER SCHWA */

/* those are not really Caucasus */

/* For Inupiak */

#define XK_Lbelowdot                0x1001e36  /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */
#define XK_lbelowdot                0x1001e37  /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */
#endif /* XK_CAUCASUS */

/* Vietnamese */

#ifdef XK_VIETNAMESE
#define XK_Abelowdot                0x1001ea0  /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */
#define XK_abelowdot                0x1001ea1  /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */
#define XK_Ahook                    0x1001ea2  /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */
#define XK_ahook                    0x1001ea3  /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */
#define XK_Acircumflexacute         0x1001ea4  /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
#define XK_acircumflexacute         0x1001ea5  /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */
#define XK_Acircumflexgrave         0x1001ea6  /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
#define XK_acircumflexgrave         0x1001ea7  /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */
#define XK_Acircumflexhook          0x1001ea8  /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_acircumflexhook          0x1001ea9  /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_Acircumflextilde         0x1001eaa  /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
#define XK_acircumflextilde         0x1001eab  /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */
#define XK_Acircumflexbelowdot      0x1001eac  /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
#define XK_acircumflexbelowdot      0x1001ead  /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
#define XK_Abreveacute              0x1001eae  /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
#define XK_abreveacute              0x1001eaf  /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */
#define XK_Abrevegrave              0x1001eb0  /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
#define XK_abrevegrave              0x1001eb1  /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */
#define XK_Abrevehook               0x1001eb2  /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
#define XK_abrevehook               0x1001eb3  /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */
#define XK_Abrevetilde              0x1001eb4  /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
#define XK_abrevetilde              0x1001eb5  /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */
#define XK_Abrevebelowdot           0x1001eb6  /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
#define XK_abrevebelowdot           0x1001eb7  /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
#define XK_Ebelowdot                0x1001eb8  /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */
#define XK_ebelowdot                0x1001eb9  /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */
#define XK_Ehook                    0x1001eba  /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */
#define XK_ehook                    0x1001ebb  /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */
#define XK_Etilde                   0x1001ebc  /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */
#define XK_etilde                   0x1001ebd  /* U+1EBD LATIN SMALL LETTER E WITH TILDE */
#define XK_Ecircumflexacute         0x1001ebe  /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
#define XK_ecircumflexacute         0x1001ebf  /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */
#define XK_Ecircumflexgrave         0x1001ec0  /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
#define XK_ecircumflexgrave         0x1001ec1  /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */
#define XK_Ecircumflexhook          0x1001ec2  /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_ecircumflexhook          0x1001ec3  /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_Ecircumflextilde         0x1001ec4  /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
#define XK_ecircumflextilde         0x1001ec5  /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */
#define XK_Ecircumflexbelowdot      0x1001ec6  /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
#define XK_ecircumflexbelowdot      0x1001ec7  /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
#define XK_Ihook                    0x1001ec8  /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */
#define XK_ihook                    0x1001ec9  /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */
#define XK_Ibelowdot                0x1001eca  /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */
#define XK_ibelowdot                0x1001ecb  /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */
#define XK_Obelowdot                0x1001ecc  /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */
#define XK_obelowdot                0x1001ecd  /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */
#define XK_Ohook                    0x1001ece  /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */
#define XK_ohook                    0x1001ecf  /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */
#define XK_Ocircumflexacute         0x1001ed0  /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
#define XK_ocircumflexacute         0x1001ed1  /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */
#define XK_Ocircumflexgrave         0x1001ed2  /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
#define XK_ocircumflexgrave         0x1001ed3  /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */
#define XK_Ocircumflexhook          0x1001ed4  /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_ocircumflexhook          0x1001ed5  /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
#define XK_Ocircumflextilde         0x1001ed6  /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
#define XK_ocircumflextilde         0x1001ed7  /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */
#define XK_Ocircumflexbelowdot      0x1001ed8  /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
#define XK_ocircumflexbelowdot      0x1001ed9  /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
#define XK_Ohornacute               0x1001eda  /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
#define XK_ohornacute               0x1001edb  /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */
#define XK_Ohorngrave               0x1001edc  /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
#define XK_ohorngrave               0x1001edd  /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */
#define XK_Ohornhook                0x1001ede  /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
#define XK_ohornhook                0x1001edf  /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
#define XK_Ohorntilde               0x1001ee0  /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */
#define XK_ohorntilde               0x1001ee1  /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */
#define XK_Ohornbelowdot            0x1001ee2  /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
#define XK_ohornbelowdot            0x1001ee3  /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */
#define XK_Ubelowdot                0x1001ee4  /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */
#define XK_ubelowdot                0x1001ee5  /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */
#define XK_Uhook                    0x1001ee6  /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */
#define XK_uhook                    0x1001ee7  /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */
#define XK_Uhornacute               0x1001ee8  /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
#define XK_uhornacute               0x1001ee9  /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */
#define XK_Uhorngrave               0x1001eea  /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
#define XK_uhorngrave               0x1001eeb  /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */
#define XK_Uhornhook                0x1001eec  /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
#define XK_uhornhook                0x1001eed  /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */
#define XK_Uhorntilde               0x1001eee  /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */
#define XK_uhorntilde               0x1001eef  /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */
#define XK_Uhornbelowdot            0x1001ef0  /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
#define XK_uhornbelowdot            0x1001ef1  /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */
#define XK_Ybelowdot                0x1001ef4  /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */
#define XK_ybelowdot                0x1001ef5  /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */
#define XK_Yhook                    0x1001ef6  /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
#define XK_yhook                    0x1001ef7  /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */
#define XK_Ytilde                   0x1001ef8  /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */
#define XK_ytilde                   0x1001ef9  /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */
#define XK_Ohorn                    0x10001a0  /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */
#define XK_ohorn                    0x10001a1  /* U+01A1 LATIN SMALL LETTER O WITH HORN */
#define XK_Uhorn                    0x10001af  /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
#define XK_uhorn                    0x10001b0  /* U+01B0 LATIN SMALL LETTER U WITH HORN */
#endif /* XK_VIETNAMESE */

#ifdef XK_CURRENCY
#define XK_EcuSign                  0x10020a0  /* U+20A0 EURO-CURRENCY SIGN */
#define XK_ColonSign                0x10020a1  /* U+20A1 COLON SIGN */
#define XK_CruzeiroSign             0x10020a2  /* U+20A2 CRUZEIRO SIGN */
#define XK_FFrancSign               0x10020a3  /* U+20A3 FRENCH FRANC SIGN */
#define XK_LiraSign                 0x10020a4  /* U+20A4 LIRA SIGN */
#define XK_MillSign                 0x10020a5  /* U+20A5 MILL SIGN */
#define XK_NairaSign                0x10020a6  /* U+20A6 NAIRA SIGN */
#define XK_PesetaSign               0x10020a7  /* U+20A7 PESETA SIGN */
#define XK_RupeeSign                0x10020a8  /* U+20A8 RUPEE SIGN */
#define XK_WonSign                  0x10020a9  /* U+20A9 WON SIGN */
#define XK_NewSheqelSign            0x10020aa  /* U+20AA NEW SHEQEL SIGN */
#define XK_DongSign                 0x10020ab  /* U+20AB DONG SIGN */
#define XK_EuroSign                    0x20ac  /* U+20AC EURO SIGN */
#endif /* XK_CURRENCY */

#endif /* __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H */
